首页 > 解决方案 > SQL Server 2012 中的条件存储过程

问题描述

当 2 列(例如 a 和 b)之间的差异大于 0.01 时,我正在尝试更新记录。我不精通存储过程或 T-SQL,但我想要类似的东西

if (a - b > 0.01) 
    then update statement 

解决这个问题的正确策略是什么?

标签: sqlsql-servertsql

解决方案


如果 a 是来自多个表的列的计算值 -

如果aColumn 与您正在更新的表有关系,那么最好使用条件中的表 Join和列WHERE

Update t
SET Column = ''
From Table t
Join Table1 t1 on t1.a = t.a
WHERE (t.a - b) > 0.01

如果列与您的更新表没有关系,您可以使用IF ELSE语句a and b

Declare @a int = 1, @b int = 2

IF (@a-@b > 0.01) 
BEGIN
    -- If you have Update statement without condition then it will update all the Column records 
END
ELSE 
BEGIN
    Print 'FALSE' 
    -- code block run when condition is FALSE
END

推荐阅读