sql >> Database >  >> RDS >> Sqlserver

De ID van de laatst ingevoegde records ophalen

SCOPE_IDENTITY() geeft u de LAATSTE ID correct. Wat je nodig hebt, is om het te combineren met @@Rowcount om je het bereik van ID's te geven. Zoals de andere Richard aangeeft , dit werkt alleen als uw verhoging is ingesteld op 1

Bijvoorbeeld:

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

Een andere manier (gebruik dit in SQL Server 2008 voor gegarandeerde resultaten) om dit te doen, gebruikt u de OUTPUT clausule

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

-- Get the ids
SELECT id from @Ids

De tabel bevat nu alle ingevoegde id's



  1. Hoe verbinding maken met MySQL DB als container in docker?

  2. Krijg nog een bestelling na limiet

  3. Fix "ERROR:ontbrekende FROM-clausule voor tabel" in PostgreSQL bij gebruik van UNION, BEHALVE of INTERSECT

  4. Opgeslagen procedure om de status van indexen in alle databases te krijgen