2012-06-27 2 views
0

У меня хороший опыт работы в MySQL, но я новичок во всех разделах SQL Server. Я задать свой вопрос по настройке и решения точно такой же вопрос в MySQL:SQL Server Auto-Increment Next INSERT Query


Создать таблицу:

CREATE TABLE IF NOT EXISTS `example` (
    `id` int(10) NOT NULL AUTO_INCREMENT, 
    `stuff` VARCHAR(255) NOT NULL, 
    PRIMARY KEY (`id`) 
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ; 

Вставьте значение в таблицу:

INSERT INTO `example` (
    `id`, `stuff` 
) VALUES (
    NULL, 'Hello World' 
) ; 

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

Однако, пытаясь ту же мысль при вставке строки в таблицу SQL Server типа int дает мне эту ошибку:

Cannot insert the value NULL into column 'id', table 'database.user.example'; column does not allow nulls. INSERT fails. (severity 16) ... 

Что можно использовать в качестве INSERT запроса SQL Server, который будет автоматически увеличивать основной как MySQL делает с значением NULL?

Спасибо за ваше время.

ответ

4

Вы установили столбец как столбец IDENTITY в определении столбца?

CREATE TABLE example (ID int IDENTITY(1,1), Stuff VARCHAR(255)) 

INSERT INTO example (Stuff) VALUES ('Hello World!') 
+0

Ах ... нет, я пропустил это. Синтаксические дескрипторы MySQL, которые бит по-разному. Это хорошо знать об этом! Есть ли способ, с помощью которого я могу «ALTER» использовать эту таблицу для таблицы или ее нужно отбросить? –

+0

Ничего ... Я могу просто создать новый столбец и отбросить старый. Отличный ответ! –

0

Это столбец идентичности, в котором вы нуждаетесь. и @Mark Byers были верны. Просто опустите столбец

+1

К сожалению, я не заметил, что он не объявил это ИДЕНТИЧНОСТЬ. Я думал, что ОП уже понял эту часть! –