(Придумал этот вопрос, пытаясь ответить на этот другой )
Рассмотрим следующую таблицу MS-SQL, называемую GroupTable:
GroupID ------- 1 2 3
где GroupID - это первичный ключ и столбец Identity.
Как вставить новую строку в таблицу (и, следовательно, создать новый идентификатор) без использования IDENTITY_INSERT ON?
Обратите внимание, что это:
INSERT INTO GroupTable() Values ()
... не сработает.
изменить: здесь мы говорим о SQL 2005 или SQL 2008.
sql
sql-server
identity
кодовидный
источник
источник
merge
оператора. Напримерmerge into TableName using (values (1), (2), (3)) s(n) on 1=0 when not matched then insert default values;
Ну вот:
INSERT INTO GroupTable DEFAULT VALUES
источник
Одновременно можно вставить более одной строки.
Например, чтобы вставить 30 строк. ВСТАВИТЬ ЗНАЧЕНИЯ ПО УМОЛЧАНИЮ в GroupTable GO 30
Это приведет к вставке 30 строк, каждый раз увеличивая столбец идентификаторов.
источник
Можете ли вы попробовать использовать последовательность или что-то подобное? Где вы выбираете из последовательности, и это даст вам следующее значение в последовательности.
источник