将scope_identity传递到存储过程中



关于将scope_identity从子存储过程传递到父存储过程的讨论很多。我有一个相反的情况,即在父存储过程中插入行,并且我想将标识值传递给子存储过程。

但是,直接将scope_identity传递给子过程会在 SQL Server Management Studio 中生成分析错误。

create procedure parent
as
begin
   --  insert a record
   exec child scope_identity() -- this does not work
end

但是,使用局部变量可以解决此问题。

create procedure parent
as
begin
   --  insert a record
   set @id = scope_identity()
   exec child @id -- this works
end

直接传递scope_identity()作为输入参数失败的原因是什么?

不能

将函数结果作为存储过程参数传递。 您需要执行后一种方法,通过将结果保存到变量,然后传递变量。

相关内容

  • 没有找到相关文章

最新更新