sql >> Databáze >  >> RDS >> Sqlserver

Získejte ID naposledy vložených záznamů

SCOPE_IDENTITY() vám správně poskytne LAST ID. Potřebujete jej zkombinovat s @@Rowcount, abyste získali rozsah ID. Jak podotýká druhý Richard , to funguje pouze v případě, že je váš přírůstek nastaven na 1

Například:

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

Jiný způsob (použijte jej v SQL Server 2008 pro zaručené výsledky) k tomu použijte OUTPUT doložka

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

-- Get the ids
SELECT id from @Ids

Tabulka nyní obsahuje všechna vložená id



  1. Innodb; více datových adresářů

  2. Jak uložit formátovaný text do tabulky MySQL?

  3. Řetězce vlastního formátu data a času Podporováno FORMAT() na serveru SQL Server

  4. Extrahujte znaky napravo od hodnoty s oddělovači v příkazu SELECT