我不确定这是否应该在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