spyProcedure を使用しようとしていますが、期待どおりに動作しません。以下のシナリオは、私がどこで苦労しているのか教えてください。
**CREATE PROC [dbo].[proc3](@id int , @marks int out)
as
begin
select @marks = marks from student where id=@id;
end**
CREATE PROC [dbo].[proc4](@id int , @marks int )
as
begin
print 'inside proc4 id ' + cast(@id as varchar) + ' marks ' + cast(@marks as varchar);
update student set marks = @marks where id=@id;
end
**CREATE PROC [dbo].[proc6](@id1 int , @id2 int)
as
begin
declare @marks int;
EXEC tSQLt.SpyProcedure 'proc3' , 'SET @marks = 80';
set @marks = @marks + 20;
print ' marks = ' + cast(@marks as varchar);
EXEC proc4 @id = @id2 , @marks = @marks;
end**
EXEC proc6 @id1 = 1 , @id2 = 2;
GO
上記を呼び出すと、「EXEC proc4 @id = @id2、@marks = @marks;」を実行/呼び出すことができません。しかし、「EXEC tSQLt.SpyProcedure 'proc3' , 'SET @marks = 80';」とコメントすると、実行できます。
どこが間違っているのか、正しく実行する方法を教えてください。
ありがとうございました。