【问题标题】:How Do I Set A variable Inside a Update Procedure before the Update Command in SqlServer?如何在 SqlServer 中的更新命令之前在更新过程中设置变量?
【发布时间】:2014-07-05 18:34:58
【问题描述】:
我正在创建一个计算固定资产递减折旧的程序。
为此,我需要基于 CASE 在过程中设置一个值,而 CASE 又基于我在 Update 命令中使用的表中的值。
在更新表格之前,我需要知道如何设置该变量。
问题看起来像这样:
Create procedure Depreciation
as begin
declare @k numeric (10,2)
set @k=case
when Value From a table inside the FROM(UPDATE)>1 then 2
else 3
end
update Deprectiation Table set (Deprectiation=@k*Value)
From Tables
where conditions
谢谢。
【问题讨论】:
标签:
sql-server
variables
set
procedure
【解决方案1】:
这是一个错误的语法。您可以执行以下操作(尽管您发布的代码根本不清楚,也不确定您要实现的目标)
Create procedure Depreciation
as
begin
declare @k numeric (10,2);
declare @value numeric (10,2);
select @value = [Value], @k = case when [Value] > 1 then 2 else 3 end
From table1 ;
update Deprectiation set Deprectiation=@k*@value where conditions;
end
【解决方案2】:
试试这个:
Create Procedure Description
AS Begin
Update DeprectiationTable
SET Deprectiation=CASE WHEN Value>1 THEN 2 ELSE 3 END * Value
From Tables
Where conditions
End