TSQL:使用多个表/ scope_identity()插入/更新

时间:2015-11-22 04:24:21

标签: sql tsql stored-procedures

我的前端有两个标签,用于收集地址和用户的信息。目前,我的存储过程在最终提交按钮上调用。我的地址表有一个ID(主键),Line1和Line2列。 My Users表有一个ID(主键)FirstName,LastName和AddressID列(应该映射到地址表中的ID列)。我的地址插入过程如下所示:

false

我的用户更新如下所示:

ALTER PROC [dbo].[Addresses_Insert]
@Line1 nvarchar(50),
@Line2 nvarchar (50), = null
@ID = INT output
As
BEGIN
INSERT INTO [dbo].[Addresses]
           (                  
                [Line1],
                [Line2]
            )
     VALUES
           (@Line1, @Line2)

    SET    @Id = SCOPE_IDENTITY()


END

我需要将scope_identity()从地址存储过程中获取到Users表的AddressID列,但我不确定如何使其工作。

1 个答案:

答案 0 :(得分:0)

在代码中添加参数时,将@Id参数设置为输出参数,并在执行过程后检查参数值:

      SqlParameter x = new SqlParameter();
      x.Direction = System.Data.ParameterDirection.Output;

或者您可以像这样从@Id参数返回值:

     SET    @Id = SCOPE_IDENTITY();
     Return @Id