关于将 ascope_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()
直接作为输入参数传递失败的原因是什么?