我如何(两者)创建一行并在同一"存储过程"中访问该行?

Ric*_*d77 1 sql-server-2008

我想在创建对象之后获取对象的id列的值.但我不想为此运行另一个查询.我的初学者书(SQL Server 2008 for Dummies)说有2个表(插入和删除)保存已插入,更新或删除的最后一行.

不幸的是,只有触发器(说书)可以访问这些表.但是,如果我使用触发器,即使我不需要那些功能,每次" 插入 "一行时它们都会消失.

我可以使用存储过程获得相同的效果(无需运行单独的查询吗?)

这就是我想要做的

CREATE PROCEDURE myProcedure
DECLARE @OrganizationName
        @ColumnID OUTPUT
AS
INSERT INTO Organization (OrganizationName)
VALUES (@OrganizationName)

SET @ColumnID = (// Please, I need Help here ...)
Run Code Online (Sandbox Code Playgroud)

谢谢你的帮助

Red*_*ter 5

你可以使用SCOPE_IDENTITY():

SELECT @ColumnID = SCOPE_IDENTITY()
Run Code Online (Sandbox Code Playgroud)