从存储过程返回更新

问题描述 投票:0回答:1

我有一个存储过程,我想在表中与where子句匹配的每一行上运行,该过程已存在于服务器上,并在其他地方使用,因此无法针对这些更改进行修改。

存储过程返回一个标量值,我需要将此值存储在表的一列中,我尝试使用更新:

UPDATE tbl SET tbl.Quantity = 
EXEC checkQuantity @ProductID = tbl.ProductID, @Quantity = tbl.Quantity
FROM orders tbl WHERE orderNumber = @orderNumber

但这当然不起作用,有没有办法在没有多个查询的情况下执行此操作,读取行信息,在循环中运行proc然后更新原始行?

sql sql-server
1个回答
1
投票

没有多个查询,没有办法做到这一点。这是需要游标或循环的少数几种情况之一。

除非您可以使用用户定义的函数替换存储过程,该函数可以在单个查询的上下文中运行。

© www.soinside.com 2019 - 2024. All rights reserved.