当前位置:  开发笔记 > 数据库 > 正文

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

如何解决《如何在另一个存储过程中迭代存储过程结果.没有游标?》经验,为你挑选了1个好方法。

我不确定这是否是我应该在T-SQL中做的事情,我很确定在这个上下文中使用'iterate'这个词是错误的,因为你不应该在sql中迭代任何东西.它应该是基于集合的操作,对吗?无论如何,这是场景:

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

如何在不使用游标的情况下执行此操作?对你来说应该是一个简单的sql大师!



1> Ben Hoffstei..:

这可能不是最有效的,但我会创建一个临时表来保存存储过程的结果,然后在目标表的连接中使用它.例如:

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


URBAN MYTH:表变量不存在于内存中!他们住在tempDB中.Plesae不传播这个神话!
推荐阅读
郑小蒜9299_941611_G
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有