- Remove From My Forums
-
Вопрос
-
Имеется SQL Server 2012 Standard, только что установленный. На всякий случай: также установлено Visual Studio 2012 Prof, Visual Basic 2012 Express, .Net Framework 4.5.
Подключаемся через Management Studio, создаём базу данных, вроде всё нормально. Но когда на разделе «Таблицы» нашей созданной базы нажимаем «Создать таблицу», оно говорит: «Не удалось найти запрошенного поставщика данных .Net Framework. Возможно он не установлен.
(System.Data)»В чём может быть дело?
Ответы
-
Криво у вас что-то встало просто. Попробуйте снести всё и поставить в последовательности: .Net, SQL 2012, VS 2012.
-
Предложено в качестве ответа
30 сентября 2012 г. 17:27
-
Помечено в качестве ответа
Иван ПродановMicrosoft contingent staff, Moderator
13 марта 2013 г. 15:05
-
Предложено в качестве ответа
For some reason I can’t create a new table from an another in SSMS.
use master;
create table bop as
select *
from dbo.Data$
where [2016] is not null and
[Series Name] = 'Imports of goods and services (% of GDP)' or
[Series Name] = 'Exports of goods and services (% of GDP)'
order by [Country Name] asc;
It outputs the error:
Msg 156, Level 15, State 1, Line 4
Incorrect syntax near the keyword ‘select’.
Anybody experienced this problem before? I’m thinking its a bug
Ilyes
14.6k4 gold badges29 silver badges54 bronze badges
asked Aug 23, 2018 at 10:11
2
That is invalid SQL
syntax for SQL Server :
Instead you can do :
select d.* into bop
from dbo.Data$ d
where [2016] is not null and
[Series Name] in ('Imports of goods and services (% of GDP)', 'Exports of goods and services (% of GDP)')
order by [Country Name] asc;
Note :
- Use
IN
clause if you have a more than one constant values that is easier read & write. -
OR
evaluates constant values one by one with no particular order, whileIN
sorts the list. So,IN
is faster in some circumstances. -
OR
will not includenull
s values if you have, butIN
will includenull
. So, choose one of them based on what actually you want.
answered Aug 23, 2018 at 10:13
Yogesh SharmaYogesh Sharma
49.8k5 gold badges24 silver badges51 bronze badges
1
Try below way
SELECT * INTO schema.newtable FROM schema.oldtable WHERE 1 = 0
From your query you have to remove
create table bop as ## this portion
and instead of it you have to add select * INTO bop
So your query will be
select * INTO bop
from dbo.Data$
where [2016] is not null and
( [Series Name] = 'Imports of goods and services (% of GDP)' or
[Series Name] = 'Exports of goods and services (% of GDP)'
)
order by [Country Name]
Instead of OR
you can use in
operator
select * INTO bop
from dbo.Data$
where [2016] is not null and
[Series Name] in ('Imports of goods and services (% of GDP)',
'Exports of goods and services (% of GDP)')
order by [Country Name]
Your Error analysis
- Msg 156, Level 15, State 1, Line 4 Incorrect syntax near the keyword
‘select’.
As you used wrong sql statement to create one table from others table thats why sqlserver thrown systax Error
answered Aug 23, 2018 at 10:13
3
You have several issues with your query. The correct syntax for what you intend is:
select d.*
into bop
from dbo.Data$ d
where [2016] is not null and
[Series Name] in ('Imports of goods and services (% of GDP)', 'Exports of goods and services (% of GDP)');
Note the following:
- SQL Server uses
select into
, notcreate table as
. This is your basic syntax error. - Presumably, you want either series name and
20161 not to be
NULL.
indoes this.
ANDhas higher precedence than
OR`, so your logic does something different. ORDER BY
is not appropriate, unless the destination table has an identity column. SQL tables represent unordered sets. The only ordering would be on the values in theidentity
column.
answered Aug 23, 2018 at 10:25
Gordon LinoffGordon Linoff
1.2m57 gold badges640 silver badges782 bronze badges
Создаю таблицу в SQL Server:
USE ##gz;
GO
CREATE TABLE mt(
[num_notice] NCHAR(50),
[num_contract] NCHAR(50),
[fz] NCHAR(50),
[name_customer] NCHAR(4000),
[inn_customer] NCHAR(50),
[kpp_customer] NCHAR(50),
[tel_customer] NCHAR(50),
[mail_customer] NCHAR(50),
[name_producer] NCHAR(4000),
[inn_producer] NCHAR(50),
[kpp_producer] NCHAR(50),
[tel_producer] NCHAR(50),
[mail_producer] NCHAR(50),
[product] NVARCHAR(MAX),
[okpd2] NCHAR(50),
[product_price] FLOAT,
[qnt] FLOAT,
[unit] NCHAR(50),
[cost] FLOAT,
[delivery_region] NVARCHAR(MAX),
[date_start_buy] NCHAR(1000),
[date_stop_request] NCHAR(1000),
[date_contract] NCHAR(1000),
[date_delivery] NCHAR(1000),
[status] NCHAR(100),
[contract_price] FLOAT,
[currency] NCHAR(100),
[qnt_conract] INT,
[ident_code] NCHAR(100),
[year] INT,
[month] INT,
[day] INT,
[region_customer] NCHAR(4000),
[region_producer] NCHAR (4000),
[class] NCHAR(1000),
[type] NCHAR(1000))
При выполнении получаю ошибку:
Сообщение 1701, уровень 16, состояние 1, строка 3
Ошибка создания или изменения таблицы "mt", так как минимальный размер строки равен 45959, включая 11 байт внутренней дополнительной памяти. Это превышает максимально допустимый размер строки таблицы, 8060 байт.
Как исправить и в чем ошибка
Спасибо.
- Remove From My Forums
Ошибка при создании таблицы
-
Question
-
Здравствуйте. Выполняю запрос к базе данных чтобы создать в ней таблицу:
private void Btn_addtable(object sender, RoutedEventArgs e) { String sql; SqlConnection Conn = new SqlConnection("Server=localhost;Integrated Security=true;Initial Catalog=D:\MyDatabaseData.mdf;"); sql = "CREATE TABLE myTable" + "(myId INTEGER CONSTRAINT PMyId PRIMARY KEY," + "myName CHAR(50), myAddress CHAR(255), myBalance FLOAT)"; SqlCommand Command = new SqlCommand(sql,Conn); try { Conn.Open(); Command.ExecuteNonQuery(); } finally { if (Conn.State == ConnectionState.Open) { Conn.Close(); } } }
Но выдает ошибку:»Не удается открыть базу данных «D:MyDatabaseData.mdf», запрашиваемую именем входа. Не удалось выполнить вход.
Ошибка входа пользователя .»База данных есть, лог файл к ней есть ,в sql server manager открывается без вопросов.
В чем проблема?
-
Edited by
Monday, December 18, 2017 5:43 PM
-
Edited by
Answers
-
Вот как то так:
https://msdn.microsoft.com/en-us/library/aa337545%28v=sql.105%29.aspx
Есть так же шанс что вы пытайтесь добавить таблицу в master (или что то в этом роде) на что прав нет. Это возможно потому что строка соединения содержит файл в InitialCatalog вместо того чтоб указывать файл в параметре AttachDBFilename.
Не помню если файл можно подсунуть в InitialCatalog или нет, по моему нет.Так же в следующий раз указывайте точную строку в которой происходит исключение и полный его текст вызовом ToString() на исключении. В случае SqlException так же список ошибок:
https://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqlerrorcollection(v=vs.110).aspx
This posting is provided «AS IS» with no warranties, and confers no rights.
-
Marked as answer by
afomin31
Wednesday, December 20, 2017 9:20 PM
-
Marked as answer by
-
Да дело не в пользователе. У вас база, задаваемая параметром InitialCatalog, не открывается. Для справки, параметром InitialCatalog передается имя присоединенной к серверу БД (как оно отображается в списке баз данных),
а не путь к ее файлу.-
Marked as answer by
afomin31
Wednesday, December 20, 2017 9:20 PM
-
Marked as answer by
- Поиск
- Помощь
- Участники
- Регистрация
- Вход
- Начало
Начало » Использование СУБД » Microsoft SQL Server » Создание таблицы в Microsoft SQL Server Management Studio
Показать: Сегодняшние сообщения :: Голосования :: Навигатор по сообщениям Отправить по e-mail |
|
|||||||||||
|
|||||||||||
|
|||||||||||
|
|||||||||||
|
Предыдущая тема: | Репликация SQL 2008 на SQL 2000 |
Следующая тема: | вывод таблицы с пустыми полями |
Переход к форуму:
-=] Вернуться вверх [=-
[ Сформировать XML ] [ ] [ ]
Текущее время: Wed Jun 14 05:58:00 MSK 2023
Общее время, затраченное на создание страницы: 0.02626 секунд