Większość ludzi robi to w następujący sposób:
INSERT dbo.Users(Username)
VALUES('my new name');
SELECT NewID = SCOPE_IDENTITY();
(Lub zamiast zapytania, przypisując je do zmiennej.)
Więc tak naprawdę nie są to dwa zapytania do tabeli ...
Istnieje jednak również następujący sposób:
INSERT dbo.Users(Username)
OUTPUT inserted.ID
VALUES('my new name');
Naprawdę nie będziesz w stanie tego pobrać za pomocą ExecuteNonQuery
jednak.