В зависимости от версии сервера (SQL Server 2005+), вы можете использовать OUTPUT
пункт:
INSERT INTO tablename (column names)
OUTPUT --this is where you put your select statement to get returned IDs etc.
VALUES (values in here, or you can use a select statememt as per usual)
MSDN Статья: OUTPUT Clause (Transact-SQL)
Если вы находитесь внутри хранимой процедуры или функции , вы можете использовать таблицу INSERTED
(также есть таблица DELETED
), которая хранится в памяти до тех пор, пока область действия не будет завершена.
После того, как вы выполнили свою вставку, вы можете присоединиться к вставленной таблице так же, как и любой другой, если она находится в том же объеме. Я считаю, что вставленная таблица существует со времен SQL Server 2000, но это определенно в 2005+.
MSDN Примеры: Use the inserted and deleted Tables