Если у меня есть таблица только с автоинкрементным столбцом, как мне вставить в нее?
-
21-08-2019 - |
Вопрос
Коллега спросил меня, если у вас есть таблица в SQL Server только с автоинкрементным столбцом, как вы вставляете новую строку в эту таблицу?
INSERT INTO MyTable() VALUES()
...не работает.
Что касается того, почему...Я на самом деле не уверен.Но я нашел этот вопрос в некотором роде убедительным.
Решение
insert into mytable default values
Другие советы
По-видимому, это работает:
INSERT INTO MyTable DEFAULT VALUES
(Только что обнаружил это после того, как нажал кнопку Задать вопрос.Извините!)
используйте значения по умолчанию, работает также со значениями по умолчанию
create table #test (id int identity, Somedate datetime default getdate())
insert #test default values
select * from #test
идентификатор Somedate
1 2009-06-30 16:04:03.307
set identity_insert MyTable ON
insert MyTable(MyIdentColumn) values(42)
set identity_insert MyTable OFF
Используйте параметр IDENTITY_INSERT:
УСТАНОВИТЕ IDENTITY_INSERT MyTable ВКЛЮЧЕННЫМ ВСТАВЬТЕ В MyTable (AutoIncrementColumnName, другие имена столбцов ...) ЗНАЧЕНИЯ (9999, ДРУГИЕ данные ...) ОТКЛЮЧИТЕ IDENTITY_INSERT MyTable
Убедитесь, что вы вставили значение, которого еще нет в ключе.