如何抑制从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 解决方案: |
|
|
|
|
|