【问题标题】: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
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2015-12-24
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多