sql >> Databasteknik >  >> RDS >> Sqlserver

Få ID för senast infogade poster

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



  1. MySQL Ta bort dubbletter av kolumner på Left Join, 3 tabeller

  2. Data trunkerade för kolumn 'profile_pic' på rad 1 im mysql

  3. Få de flesta liknande rader i MySQL-tabellen och ordna dem efter likhet

  4. Får fel:Peer-autentisering misslyckades för användare postgres, när man försöker få pgsql att fungera med rails