关于将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()
作为输入参数的原因是什么?
答案 0 :(得分:3)
您无法将函数结果作为存储过程参数传递。您需要通过将结果保存到变量然后传递变量来执行后一种方法。