This question already has an answer here:
Hi
Im going to insert 10 rows in a time using one TSQL which is available in SQL server 2008.
I want the IDENTITY of inserted rows. I think the below solution would work but Im not sure if some other insertion happens while im running the previous insertion would affect the result
INSERT INTO tableA VALUES (1,2), (3,4), (4,5), ....
DECLARE @LastID INT = @@IDENTITY
SELECT TOP(10) ID FROM tableA WHERE ID<=@LastID ORDER BY ID DESC
You can use the OUTPUT clause:
Just use the OUTPUT clause - it can either return output to the application, or into a table variable for further work.
E.g. your query would be: