SCOPE_IDENTITY() ще ви даде правилно ПОСЛЕДНИЯ ИД. Това, от което се нуждаете, е да го комбинирате с @@Rowcount, за да ви даде диапазон от идентификатори. Както посочва другият Ричард , това работи само ако вашето увеличение е зададено на 1
Например:
declare @last int, @first int
insert ...
select @last = scope_identity(), @first = scope_identity() - @@rowcount + 1
Друг начин (използвайте това в SQL Server 2008 за гарантирани резултати) за да направите това е да използвате ИЗХОД клауза
declare @ids table (id int)
INSERT INTO Table1 (FirstName ,LastName ,EmailAddress)
output inserted.id into @ids
-- Get the ids
SELECT id from @Ids
Сега таблицата съдържа всички вмъкнати идентификатори