从存储过程返回更新

时间:2018-02-28 18:57:06

标签: sql sql-server

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

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

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

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

1 个答案:

答案 0 :(得分:1)

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

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