我不确定这是否是我应该在T-sql中做的事情,我很确定在这个上下文中使用’iterate’这个词是错误的,因为你不应该在sql中迭代任何东西.它应该是基于集合的操作,对吗?无论如何,这是场景:
我有一个存储过程,返回许多uniqueidentifiers(单列结果).这些ID是另一个表中记录的主键.我需要在该表中的所有相应记录上设置一个标志.
如何在不使用游标的情况下执行此操作?对你来说应该是一个简单的sql大师!
解决方法
这可能不是最有效的,但我会创建一个临时表来保存存储过程的结果,然后在目标表的连接中使用它.例如:
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