SQL Server список идентификаторов вставки - PullRequest
13 голосов
/ 06 января 2011

У меня есть таблица с идентификатором автоинкремента, который я делаю

INSERT INTO ( ... ) SELECT ... FROM ...

Можно ли получить список вставленных идентификаторов?

Я былдумая, что я мог бы получить максимальный идентификатор до вставки, затем после и предполагая, что все между ними новое, но затем, если строка вставляется откуда-то еще, я могу столкнуться с проблемами.Есть ли правильный способ сделать это?

Я использую SQL Server 2005

Ответы [ 2 ]

36 голосов
/ 06 января 2011

Используйте предложение output .

DECLARE @InsertedIDs table(ID int);

INSERT INTO YourTable
    OUTPUT INSERTED.ID
        INTO @InsertedIDs 
    SELECT ...
3 голосов
/ 06 января 2011

Создайте переменную table и затем используйте предложение OUTPUT в переменной table.

OUTPUT inserted.NameOfYourColumnId INTO tableVariable

Тогда вы можете SELECT из вашей переменной table.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...