Se você tiver uma coluna que é uma IDENTIDADE, faça isso
INSERT MyTable DEFAULT VALUES; --allows no column list. The default will be the IDENTITY
SELECT SCOPE_IDENTITY();
Se você não tem identidade, então você pode configurá-la? Esta é a melhor maneira.. e use o SQL acima.
Caso contrário, você deseja inserir uma nova linha
INSERT MyTable (admidid)
OUTPUT INSERTED.admidid --returns result to caller
SELECT ISNULL(MAX(admidid), 0) + 1 FROM MyTable
Notas:
- Sob cargas altas, a solução MAX pode falhar com duplicatas
- SCOPE_IDENTITY é depois o fato, não antes
- SCOPE_IDENTITY só funciona com uma coluna IDENTITY. Idem para qualquer idiotice usando IDENT_CURRENT
- A cláusula de saída substitui SCOPE_IDENTITY pela solução MAX