一尘不染

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

sql

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

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

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


阅读 194

收藏
2021-03-10

共1个答案

一尘不染

这可能不是最有效的方法,但是我将创建一个临时表来保存存储的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
2021-03-10