Si vous avez une colonne qui est une IDENTITÉ, faites ceci
INSERT MyTable DEFAULT VALUES; --allows no column list. The default will be the IDENTITY
SELECT SCOPE_IDENTITY();
Si vous n'avez pas d'identité, pouvez-vous la définir ? C'est le meilleur moyen... et utilisez le SQL ci-dessus.
Sinon, vous souhaitez insérer une nouvelle ligne
INSERT MyTable (admidid)
OUTPUT INSERTED.admidid --returns result to caller
SELECT ISNULL(MAX(admidid), 0) + 1 FROM MyTable
Remarques :
- Sous des charges élevées, la solution MAX peut échouer avec des doublons
- SCOPE_IDENTITY est après le fait, pas avant
- SCOPE_IDENTITY ne fonctionne qu'avec une colonne IDENTITY. Idem toute idiotie en utilisant IDENT_CURRENT
- La clause de sortie remplace SCOPE_IDENTITY pour la solution MAX