Om du har en kolumn som är en IDENTITET gör du bara detta
INSERT MyTable DEFAULT VALUES; --allows no column list. The default will be the IDENTITY
SELECT SCOPE_IDENTITY();
Om du inte har identitet, kan du då ställa in den? Detta är det bästa sättet.. och använd SQL-koden ovan.
Om inte, vill du infoga en ny rad
INSERT MyTable (admidid)
OUTPUT INSERTED.admidid --returns result to caller
SELECT ISNULL(MAX(admidid), 0) + 1 FROM MyTable
Anmärkningar:
- Under hög belastning kan MAX-lösningen misslyckas med dubbletter
- SCOPE_IDENTITY är efter faktum, inte tidigare
- SCOPE_IDENTITY fungerar bara med en IDENTITY-kolumn. Dito all idioti som använder IDENT_CURRENT
- Utdatasatsen ersätter SCOPE_IDENTITY för MAX-lösningen