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

一个如何遍历存储过程的结果又可以从另一个存储过程(没有游标)中进行呢?

长孙波鸿
2023-03-14
问题内容

我不确定这是否应该在T-SQL中执行,而且我很确定在这种情况下使用“
iterate”一词是错误的,因为您永远都不应在sql中进行任何迭代。应该是基于集合的运算,对吗?无论如何,这是场景:

我有一个存储的proc,它返回许多uniqueidentifiers(单列结果)。这些ID是另一个表中记录的主键。我需要在该表中的所有相应记录上设置一个标志。

在不使用游标的情况下该如何做?对您来说,sql专家应该很容易!


问题答案:

这可能不是最有效的方法,但是我将创建一个临时表来保存存储的proc的结果,然后在针对目标表的联接中使用它。例如:

CREATE TABLE #t (uniqueid int)
INSERT INTO #t EXEC p_YourStoredProc

UPDATE TargetTable 
SET a.FlagColumn = 1
FROM TargetTable a JOIN #t b 
    ON a.uniqueid = b.uniqueid

DROP TABLE #t


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

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

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

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

  • 问题内容: 我并不是说要进行“ SET NOCOUNT OFF”。但是我有一个存储过程,可用于将一些数据插入某些表中。此过程创建一个xml响应字符串,下面让我举一个例子: 因此,我整理了一个脚本,该脚本多次使用此SP,并且xml“输出”变得太多了(它已经使我的盒子崩溃了)。 有没有办法抑制或重定向由此存储过程生成的输出?我不认为修改此存储过程是一种选择。 谢谢。 我想我应该澄清一下。上面的SP被我

  • 问题内容: 我主要是oracle新手,所以如果这是一个愚蠢的问题,请原谅我… 我有一个名为“ CODE”的架构,该架构具有一个执行任意SQL的存储proc(目前,请忽略与此相关的潜在安全问题)。传入的SQL将选择数据;但是所有数据都驻留在架构A,B或C中- 但是SQL一次只能选择一个架构。 例如:类型A的用户创建字符串’SELECT * FROM A.USERTABLE’-类型B的用户创建字符串’