检查两列是否同时更新

时间:2017-04-06 15:36:34

标签: sql-server triggers

我正在尝试在SQL Server中创建一个INSTEAD OF触发器,以防止更新两列,除非另一列同时更新。任何帮助将不胜感激。

CREATE Trigger Validation1 
ON tblCust
INSTEAD OF UPDATE
AS
BEGIN
    <NEW.CustomerAge> = <OLD.CustomerAge> or <NEW.CustomerRange> = <OLD.CustomerRange>
    <RAISE EXCEPTION>
    END IF;
END;

1 个答案:

答案 0 :(得分:1)

  

防止更新两个字段,除非另一个字段同时更新

您可以在触发后或触发前使用UPDATE()

IF ( UPDATE (col1) and  UPDATE (col2) )  
BEGIN  
--your logic for both col1 updated at same time
END;  
else 
begin
--other logic
end

正如PMB Austin在评论中指出的那样,您可以进一步检查If逻辑内部,看看更新后的值是否与值相同并根据您的逻辑对待它,是否将其视为更新