Se hai una colonna che è un'IDENTITÀ, fallo
INSERT MyTable DEFAULT VALUES; --allows no column list. The default will be the IDENTITY
SELECT SCOPE_IDENTITY();
Se non hai identità, puoi impostarla? Questo è il modo migliore... e usa l'SQL sopra.
In caso contrario, vuoi inserire una nuova riga
INSERT MyTable (admidid)
OUTPUT INSERTED.admidid --returns result to caller
SELECT ISNULL(MAX(admidid), 0) + 1 FROM MyTable
Note:
- Sotto carichi elevati, la soluzione MAX potrebbe non funzionare con duplicati
- SCOPE_IDENTITY è dopo il fatto, non prima
- SCOPE_IDENTITY funziona solo con una colonna IDENTITY. Idem qualsiasi idiozia usando IDENT_CURRENT
- La clausola di output sostituisce SCOPE_IDENTITY per la soluzione MAX