在存储过程中,在游标内调用另一个存储过程.对于每个调用,SQL Management Studio结果窗口都显示结果.光标循环超过100次,此时结果窗口放弃了错误.有没有办法可以阻止光标中的存储过程输出任何结果?
WHILE @@FETCH_STATUS = 0 BEGIN EXEC @RC = dbo.NoisyProc SELECT @RValue2 = 1 WHERE @@ROWCOUNT = 0 FETCH NEXT FROM RCursor INTO @RValue1, @RValue2 END
谢谢!
您可以按照以下步骤丢弃SQL Server Mgmt Studio 2005中的结果集:
•在查询窗口中单击鼠标右键
•选择"查询选项"
•单击左侧面板树视图中的"结果""节点"
•在表单的中间/右侧选中"执行后放弃结果"
你可以尝试一下
DECLARE @i int SET @i = 1 WHILE (@i <= 100) BEGIN SELECT @i as Iteration SET @i = @i + 1 END
您可以将结果插入临时表,然后删除临时表
create table #tmp (columns) while ... insert into #tmp exec @RC=dbo.NoisyProc ... end drop table #tmp
否则,你可以修改被调用的proc来接受一个告诉它不输出结果集的标志吗?
我知道这个问题很旧,但你可以设置SET NOCOUNT ON
为阻止SP为每一行输出一条消息.