加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

sql – 如何在另一个存储过程中迭代存储过程结果…没有游标?

发布时间:2020-12-12 16:21:43 所属栏目:MsSql教程 来源:网络整理
导读:我不确定这是否是我应该在T-SQL中做的事情,我很确定在这个上下文中使用’iterate’这个词是错误的,因为你不应该在sql中迭代任何东西.它应该是基于集合的操作,对吗?无论如何,这是场景: 我有一个存储过程,返回许多uniqueidentifiers(单列结果).这些ID是另一个
我不确定这是否是我应该在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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读