В SQl Server 2008 вы также можете использовать предложение OUTPUT.
DECLARE @output TABLE (myid INT)
INSERT mytable (field1, field2)
OUTPUT inserted.myid INTO @output
VALUES ('test', 'test')
SELECT * FROM @output
Что делает это особенно ценным, так это то, что если вы используете его для вставки нескольких записей вместо одной, вы можете получить все идентификаторы. Вы также можете вернуть любые другие поля, которые вам могут понадобиться.*
что-то вроде:
DECLARE @output TABLE (myid INT, field1 datetime)
INSERT mytable (field1, field2)
OUTPUT inserted.myid, inserted.field1 INTO @output
Select '20100101', field3 from mytable2
SELECT * FROM @output