Jeśli masz jedną kolumnę, która jest TOŻSAMOŚCIĄ, po prostu zrób to
INSERT MyTable DEFAULT VALUES; --allows no column list. The default will be the IDENTITY
SELECT SCOPE_IDENTITY();
Jeśli nie masz tożsamości, czy możesz ją ustawić? To najlepszy sposób... i użyj powyższego SQL.
Jeśli nie, chcesz wstawić nowy wiersz
INSERT MyTable (admidid)
OUTPUT INSERTED.admidid --returns result to caller
SELECT ISNULL(MAX(admidid), 0) + 1 FROM MyTable
Uwagi:
- Przy dużych obciążeniach rozwiązanie MAX może zawieść z duplikatami
- SCOPE_IDENTITY jest po fakt, nie wcześniej
- SCOPE_IDENTITY działa tylko z kolumną IDENTITY. Podobnie jak wszelki idiotyzm przy użyciu IDENT_CURRENT
- Klauzula wyjściowa zastępuje SCOPE_IDENTITY dla rozwiązania MAX