通过调用SP更新表中的值

时间:2011-03-22 20:46:57

标签: sql-server stored-procedures

HI,

我有一个表(让我们称之为tblInsuranceInfo),其中需要通过调用存储过程来更新单个列(让我们称之为ReturnscalculatedAge)。表的更新将在存储过程中进行。

ReturnscalculatedAge SP需要许多参数,一些tblInsuranceInfo列。

ReturnscalculatedAge SP也会返回许多值。但是我们需要将返回的值之一设置为tblInsuranceInfo的Column1。

如何为tblInsuranceInfo Column2 = 'something'中的每条记录执行此操作?

感谢您的帮助。

2 个答案:

答案 0 :(得分:0)

在您从中返回值之前,对sp中的tblInsuranceInfo进行了简单的更新:

UPDATE tblInsuranceInfo
SET Column1 = @ParameterName
WHERE Column2 = @SomeOtherParameterName

然后,在存储过程结束之前执行以下操作:

SELECT Column1, Column2
FROM tblInsuranceInfo
WHERE Column2 = @SomeOtherParameterName

答案 1 :(得分:0)

我不知道以基于集合的方式调用SP的方法,所以这里是一个RBAR解决方案。 假设您的SP将Column2的值作为out参数返回,并且您在tblInsuranceInfo中将ID整数列作为PK。

declare @id int
declare @Col1 int

select @id = min(ID)
from tblInsuranceInfo
where Column2 = 'Something'

while @id is not null
begin
  --exec SP here get return value in @Col1

  update tblInsuranceInfo
  set Column1 = @Col1
  where ID = @id 

  select @id = min(ID)
  from tblInsuranceInfo
  where Column2 = 'Something' and
        ID > @id
end