1

我有需要使用存储过程的结果更新表的要求。

例子:

Declare @result1 decimal
Declare @price deciaml

Create Table #OrderDetails
{ 
    @orderID bigint
    ,@orderName nvarchar(9)
    ,@orderPrice decimal
    ,@orderFlag nchar(1)
}

Insert into #OrderDetails
{ 
    @orderID 
    ,@orderName 
    ,@orderPrice
    ,@orderFlag
} Select * from CartDetails


Update #OrderDetails
set @orderFlag = 1
from #OrderDetails
where orderID = 1

--Now update each row of #OrderDetails by calling a stored procedure
Update #OrderDetails
set @orderPrice= @result1
from (exec store_proc_calc_price orderID, orderName, @price = @result1 Output)

有没有办法为每一行执行存储过程#OrderDetails并更新@orderPrice存储过程的结果?

4

1 回答 1

0

是的,你可以这么做。您需要创建一个游标来循环遍历表的所有行并为每一行调用存储过程。查看帮助中的光标示例,它非常简单......

于 2012-11-15T00:35:23.177 回答