Sqlserver
 sql >> Database >  >> RDS >> Sqlserver

Ottieni l'ID degli ultimi record inseriti

SCOPE_IDENTITY() ti darà correttamente l'ULTIMO ID. Quello di cui hai bisogno è combinarlo con @@Rowcount per darti la gamma di ID. Come fa notare l'altro Richard , funziona solo se l'incremento è impostato su 1

Ad esempio:

declare @last int, @first int
insert ...
select @last = scope_identity(), @first = scope_identity() - @@rowcount + 1

Un altro modo (usalo in SQL Server 2008 per risultati garantiti) per farlo è utilizzare OUTPUT clausola

declare @ids table (id int)
INSERT INTO Table1 (FirstName ,LastName ,EmailAddress)
output inserted.id into @ids

-- Get the ids
SELECT id from @Ids

La tabella ora contiene tutti gli ID inseriti