Rückgabe AutoIncremeting ID beim Einfügen

Ich habe eine gespeicherte Prozedur, die in eine Tabelle einfügt, die zwei Werte, id und username . Das id Feld ist autoincremeting, so dass meine gespeicherte Prozedur aussieht:

 CREATE PROCEDURE [dbo].[sp_test] @username varchar(50) AS BEGIN INSERT INTO dbo.testtable(username) SELECT @username FROM tbl.test2 WHERE username IS NOT NULL 

Wie kann ich die id auch wenn es nicht explizit angegeben ist? Ich habe die SCOPE_IDENTITY(); versucht SCOPE_IDENTITY(); Keyword aber ich erhielt Leerzeichen und Nullen.

Eine Vermutung, was du willst, ich denke, es wäre etwas mehr so.

 CREATE PROCEDURE [dbo].[Insert_test] ( @username varchar(50) ) AS BEGIN INSERT INTO dbo.testtable ( username ) VALUES ( @username ) select SCOPE_IDENTITY() END 

Wenn Sie wirklich mehrere Zeilen aus einer Tabelle insert, können Sie die IDs auf diese Weise bekommen:

 INSERT INTO dbo.testtable(username) output inserted.id SELECT username FROM dbo.test2 where username is not null