SCOPE_IDENTITY() fornecerá corretamente o ÚLTIMO ID. O que você precisa é combiná-lo com @@Rowcount para fornecer o intervalo de IDs. Como o outro Richard aponta , isso só funciona se o seu incremento estiver definido como 1
Por exemplo:
declare @last int, @first int
insert ...
select @last = scope_identity(), @first = scope_identity() - @@rowcount + 1
Outra maneira (use isso no SQL Server 2008 para resultados garantidos) para fazer isso é usar a OUTPUT cláusula
declare @ids table (id int)
INSERT INTO Table1 (FirstName ,LastName ,EmailAddress)
output inserted.id into @ids
-- Get the ids
SELECT id from @Ids
A tabela agora contém todos os IDs inseridos