我发现当执行 SP1 时,SP2 不会从 SP1 中执行。
SP1的结构如下:
ALTER PROCEDURE SP1 AS BEGIN
Declare c1 cursor....
open c1 fetch next from c1 ...
while @@fetch_status = 0 Begin
...
Fetch Next from c1 end
close c1
deallocate c1
exec sp2
end
如果在 SQL Server 2005 management studio 的“输出窗口”中打印它们,我看不到任何 PRINT 语句输出,因为“输出窗口”是空的。
最佳答案
如果将存储过程代码作为单个查询运行会怎样?如果在 exec 之前和之后放置一个 PRINT
语句,您会看到两个输出吗?
- 如果这样做,则存储过程一定已经执行。可能它没有按照您的意愿行事。
- 如果您没有看到任何打印输出,则说明循环有问题
- 如果您没有看到第二个输出但看到了第一个,则第二个存储过程中有问题。
关于sql - 未在另一个存储过程中执行的存储过程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/170440/