回答

收藏

如何抑制从SQL Server中的另一个存储过程调用的存储过程的SELECT输出?

技术问答 技术问答 147 人阅读 | 0 人回复 | 2023-09-13

我不是说要 SET NOCOUNT
+ Y/ D( _) g* G1 A9 \OFF但是我有一个存储过程,可以将一些数据插入一些表中。在这个过程中创建一个xml让我举一个响应字符串的例子:! b' z$ I9 _8 }7 v% z+ H: ]
CREATE PROCEDURE [dbo].[insertSomeData] (@myParam int) ASDECLARE @reply varchar(2048)... Do a bunch of inserts/updates...SET @reply = '<strong>'SELECT @replyGO所以我整理了一个脚本,用了很多次。SP,并且xml输出变得太多了(它已经崩溃了我的盒子)。
# m/ t3 e" u( f7 a) T+ @9 o$ H有没有办法抑制或重定向存储过程产生的输出?我不认为修改这个存储过程是一种选择。
$ R8 ?( l- Y# p2 Y& s谢谢。% O. Q' p: ^- H8 e4 I* o* D, X& S2 h
我想我应该澄清一下。SP被我编写的T-SQL Update脚本调用,脚本将通过Enterprise Studio Manager等运行。  ]) e4 g4 g/ d+ L
它不是我写过的最优雅的SQL(有些psuedo-sql):
! o' ~  x' Z! {WHILE unprocessedRecordsLeft  BEGIN    SELECT top 1 record from updateTable where Processed = 0    EXEC insertSomeData @param = record_From_UpdateTable  END所以,可以说UpdateTable记录约5万条。SP被调用50k次,将50k xml字符串写入输出窗口。它没有停止SQL
1 l& b) A( R! U( d' j7 y. jServer,只是我的客户端应用程序(SQL Server Management Studio)就停止了。# `0 H) b7 c7 ]3 h, k! Q' k7 \. \
                                                               
* B& m; C9 V: l, _3 n% h    解决方案:
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则