Pokud máte jeden sloupec IDENTITY, udělejte to
INSERT MyTable DEFAULT VALUES; --allows no column list. The default will be the IDENTITY
SELECT SCOPE_IDENTITY();
Pokud identitu nemáte, můžete ji nastavit? Toto je nejlepší způsob... a použijte výše uvedený SQL.
Pokud ne, chcete vložit nový řádek
INSERT MyTable (admidid)
OUTPUT INSERTED.admidid --returns result to caller
SELECT ISNULL(MAX(admidid), 0) + 1 FROM MyTable
Poznámky:
- Při vysokém zatížení může řešení MAX selhat s duplikáty
- SCOPE_IDENTITY je po skutečnost, ne dříve
- SCOPE_IDENTITY funguje pouze se sloupcem IDENTITY. Stejně jako jakákoli idiocie pomocí IDENT_CURRENT
- Výstupní klauzule nahrazuje SCOPE_IDENTITY pro řešení MAX