执行存储过程并更新表

时间:2012-11-15 00:32:47

标签: sql sql-server-2008 stored-procedures

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

示例:

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

1 个答案:

答案 0 :(得分:0)

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