Wenn Sie eine Spalte haben, die eine IDENTITÄT ist, tun Sie dies einfach
INSERT MyTable DEFAULT VALUES; --allows no column list. The default will be the IDENTITY
SELECT SCOPE_IDENTITY();
Wenn Sie keine Identität haben, können Sie sie dann festlegen? Dies ist der beste Weg ... und verwenden Sie das obige SQL.
Wenn nicht, möchten Sie eine neue Zeile einfügen
INSERT MyTable (admidid)
OUTPUT INSERTED.admidid --returns result to caller
SELECT ISNULL(MAX(admidid), 0) + 1 FROM MyTable
Hinweise:
- Unter hoher Last kann die MAX-Lösung mit Duplikaten fehlschlagen
- SCOPE_IDENTITY ist nach nämlich nicht vorher
- SCOPE_IDENTITY funktioniert nur mit einer IDENTITY-Spalte. Dito jede Idiotie mit IDENT_CURRENT
- Die Ausgabeklausel ersetzt SCOPE_IDENTITY für die MAX-Lösung