La plupart des gens le font de la manière suivante :
INSERT dbo.Users(Username)
VALUES('my new name');
SELECT NewID = SCOPE_IDENTITY();
(Ou au lieu d'une requête, affectez-la à une variable.)
Il ne s'agit donc pas vraiment de deux requêtes contre la table ...
Cependant, il existe également la méthode suivante :
INSERT dbo.Users(Username)
OUTPUT inserted.ID
VALUES('my new name');
Vous ne pourrez pas vraiment le récupérer avec ExecuteNonQuery
, cependant.