【发布时间】:2010-09-15 06:54:12
【问题描述】:
我发现在执行 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 管理工作室的“输出窗口”中打印,我看不到任何 PRINT 语句输出,因为“输出窗口”为空。
【问题讨论】:
-
你试过调试存储过程吗?我想知道它是否没有甚至到达 exec sp2 行。
-
您可能希望避免使用 Fetch Next。它们确实效率不高,而且对性能影响很大。
-
谢谢你能建议一种不使用 fetch next 的替代方法吗?
-
您是从命令行运行存储过程,还是从应用程序中运行存储过程?如果您在应用程序中执行它,请确保在 sp2 执行之前您的连接没有被关闭。
标签: sql sql-server sql-server-2005 stored-procedures