Если у меня есть таблица только с автоинкрементным столбцом, как мне вставить в нее?

StackOverflow https://stackoverflow.com/questions/1065713

Вопрос

Коллега спросил меня, если у вас есть таблица в 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

Убедитесь, что вы вставили значение, которого еще нет в ключе.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top