当前位置: 首页 > 面试题库 >

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

麹耘豪
2023-03-14
问题内容

我并不是说要进行“ SET NOCOUNT
OFF”。但是我有一个存储过程,可用于将一些数据插入某些表中。此过程创建一个xml响应字符串,下面让我举一个例子:

CREATE PROCEDURE [dbo].[insertSomeData] (@myParam int) AS
DECLARE @reply varchar(2048)

... Do a bunch of inserts/updates...

SET @reply = '<xml><big /><outputs /></xml>'
SELECT @reply
GO

因此,我整理了一个脚本,该脚本多次使用此SP,并且xml“输出”变得太多了(它已经使我的盒子崩溃了)。

有没有办法抑制或重定向由此存储过程生成的输出?我不认为修改此存储过程是一种选择。

谢谢。

我想我应该澄清一下。上面的SP被我编写的T-SQL Update脚本调用,该脚本将通过Enterprise Studio Manager等运行。

而且它也不是我曾经写过的最优雅的SQL(有些psuedo-sql):

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
Server,只是我的客户端应用程序(SQL Server Management Studio)就停止了。


问题答案:

我想我找到 解决方案。

因此,我现在可以在SQL脚本中执行以下操作(sql-psuedo代码):

create table #tmp(xmlReply varchar(2048))
while not_done
  begin
    select top 1 record from updateTable where processed = 0
    insert into #tmp exec insertSomeData @param=record
  end
drop table #tmp

现在,如果有一种更有效的方法可以做到这一点。SQL Server是否具有类似于/ dev / null的内容?空表或什么?



 类似资料:
  • 问题内容: 我有一个需要很多参数的插入存储过程-其中2个是@ FirstName,@ LastName。我还有一个更新存储过程,该过程需要许多参数-其中2个是@ FirstName,@ LastName。 我想做的是,从插入SP内部完成之后,调用更新SP并将其发送给@ FirstName,@ LastName。 我不知道这样做的正确语法;我试过了: 但我认为这是错误的。 有人可以告诉我怎么写这个电

  • 问题内容: 我在任何地方都找不到此答案,但是可以从MySQL中的另一个存储过程调用存储过程吗?我想找回标识值,并在父存储过程中使用它。我们不能再使用FUNCTIONS! 问题答案: 参数应该可以帮助您将值返回给调用过程。基于此,解决方案必须是这样的。

  • 问题内容: 我试图在postgres 9.3上使用sql调用函数内的函数。 这个问题与我的另一篇文章有关。 我写了下面的函数。到目前为止,我还没有合并任何类型的save-output(COPY)语句,因此我试图通过创建嵌套函数print-out函数来解决此问题。 以上功能有效。 尝试创建嵌套函数。 调用嵌套函数。 输出 上面给出了这个。但是,当在print_out()中将arg1,arg2替换为’

  • 我如何在服务器的另一个存储过程中执行SQL存储过程?我将如何传递第二个过程的参数。?

  • 问题内容: 我有一个MYSQL存储过程SP1(),它返回一个结果集。 我想在SP2()内部调用SP1()并遍历SP1()的结果集以执行一些其他工作。 我不想从SP1()中包含我的逻辑,因为这会使SP2()过于复杂。 有什么建议么? 谢谢。 问题答案: 您想做的事情听起来并不是特别好,也许您应该考虑重新设计这两个过程。但是,您可以执行以下操作来快速解决此问题: 使您的sp2 sproc将其中间结果写

  • 我有一个名为的表和另一个的表。是表的副本。 现在,表可以随时删除并重新创建,添加新列并将旧列重命名为不同的列。我编写了一个存储过程,它将数据从表复制到表,这取决于是否需要插入或更新 现在我有点迷路了:如何解决这个问题,即一旦删除并重新创建了sales表,如何修改对saleshistory表的更改? 任何想法或相同的代码,如果需要,我可以在存储过程中共享我的代码,但这很简单 这是代码