SCOPE_IDENTITY() ger dig det SISTA ID:t korrekt. Vad du behöver är att kombinera det med @@Rowcount för att ge dig ett antal ID:n. Som den andre Richard påpekar , detta fungerar bara om din ökning är inställd på 1
Till exempel:
declare @last int, @first int
insert ...
select @last = scope_identity(), @first = scope_identity() - @@rowcount + 1
Ett annat sätt (använd detta i SQL Server 2008 för garanterade resultat) för att göra detta är att använda OUTPUT klausul
declare @ids table (id int)
INSERT INTO Table1 (FirstName ,LastName ,EmailAddress)
output inserted.id into @ids
-- Get the ids
SELECT id from @Ids
Tabellen innehåller nu alla infogade ID