Als je één kolom hebt die een IDENTITEIT is, doe dit dan gewoon
INSERT MyTable DEFAULT VALUES; --allows no column list. The default will be the IDENTITY
SELECT SCOPE_IDENTITY();
Als je geen identiteit hebt, kun je die dan instellen? Dit is de beste manier.. en gebruik de bovenstaande SQL.
Zo niet, dan wil je een nieuwe rij invoegen
INSERT MyTable (admidid)
OUTPUT INSERTED.admidid --returns result to caller
SELECT ISNULL(MAX(admidid), 0) + 1 FROM MyTable
Opmerkingen:
- Bij hoge belasting kan de MAX-oplossing mislukken met duplicaten
- SCOPE_IDENTITY is na het feit, niet eerder
- SCOPE_IDENTITY werkt alleen met een IDENTITY-kolom. Idem voor elke idiotie met IDENT_CURRENT
- De uitvoerclausule vervangt SCOPE_IDENTITY voor de MAX-oplossing