scope_identity
子から親のストアドプロシージャにを渡すことについては、多くの議論があります。行が親ストアドプロシージャに挿入され、ID値を子ストアドプロシージャに渡したいという反対のシナリオがあります。
ただし、scope_identityを子プロシージャに直接渡すと、SQL ServerManagementStudioで解析エラーが発生します。
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()
入力パラメータとして直接渡されない理由は何ですか?