2009-09-08 3 views
1

Я пытаюсь вставить строку вручную в таблицу данных SQL Server. Эта таблица имеет 5 столбцов, один идентификатор и четыре столбца данных. Я посмотрел на this post, но когда я запустил запрос выбранного ответа (после замены «GroupTable» на мое имя таблицы, конечно), моя студия управления SQL Server 2005 аварийно завершает работу.Оператор SQL для вставки записи в таблицу с идентификационным столбцом?

Я попытался вариации следующих утверждений, но явно не везло до сих пор:

INSERT INTO MyTable (id, col1, col2, col3, col4) 
VALUES (0, 'Column 1 Value', 'Column 2 Value', 'Column 3 Value', 'Column 4 Value') 

INSERT INTO MyTable (col1, col2, col3, col4) 
VALUES ('Column 1 Value', 'Column 2 Value', 'Column 3 Value', 'Column 4 Value') 

Все указатели будут весьма благодарны.

+0

Похоже, вы используете Microsoft SQL Server Management Studio из своего продукта SQL Server 2005 для управления MySQL. Правда? –

+0

Нет, вопрос был неправильно помечен как MySQL. Я использую MSSQL 2005. – Anders

ответ

7

Как правило, при исключении столбца id генерируется новый автоматический идентификатор, если столбец установлен так. В вашем случае, вы можете использовать

SET IDENTITY_INSERT MyTable ON; 

INSERT INTO MyTable (id, col1, col2, col3, col4) 
VALUES (4567, 'Value1', 'Value2', 'Value3', 'Value4'); 

SET IDENTITY_INSERT MyTable OFF; 
+1

Ну, мой второй запрос должен работать, так как столбец id автоматически увеличивается и идентичен? – Anders

+0

Да, если столбец был действительно создан с 'ID INT IDENTITY NOT NULL PRIMARY KEY' (или аналогичным). Возможно, что-то отсутствует в определении вашей таблицы. –

+0

Это то, что было создано как: '[id] [int] IDENTITY (1,1) NOT NULL'. Если я попытаюсь добавить «PRIMARY KEY» в конец этой строки, я получаю сообщение о том, что я не могу добавить несколько ограничений PRIMARY KEY в таблицу «MyTable». В определении таблицы есть еще один раздел: 'CONSTRAINT [PK_MyTable] PRIMARY KEY CLUSTERED ([id] ASC)', это то, что определяет столбец идентификатора как PK? – Anders

0

Впервые я слышал о том, что mysql имеет клиент управления SQL 2005, но в любом случае вы попытались напрямую войти в базу данных из командной строки и выполнить там инструкцию insert?

+0

Это не MySQL, это MSSQL 2005. Кто-то еще отредактировал мой пост и добавил тег MySQL. – Anders

0

Не уверен, что вы имеете в виду под «аварией», но, что второе утверждение должно работать обеспечение у вас есть спецификации идентичности установить правильно на столе. Щелкните правой кнопкой мыши таблицу в студии mangement и посмотрите на свойства столбца id. isIdentity должно быть «Да», а приращение идентификатора должно быть равным 1.

+0

Проверьте, что это идентичность. Тот же вопрос. – Anders

1

Как некоторые другие говорили, я думаю, что второй должен работать на вас, но если вы рушите студию управления при запуске запроса, будет ли он сломан или нет, ваша проблема больше, чем неправильный SQL-запрос.

Студия не должна разбиваться, даже если вы напишете довольно ужасный sql ... она должна просто дать вам сообщение об ошибке и двигаться дальше. Возможно, вы захотите переустановить студию управления, если эти ошибки являются общими для вас.

+0

Мой второй запрос не разбивает приложение, запрос из связанного с ним сообщения. Это первый случай, когда случилось что-то странное. – Anders

Смежные вопросы