sqlserver trigger(触发器)-更新某几列数据时触发

xiaoxiao2021-02-28  37

CREATE TRIGGER [dbo].[updataAlarmLevel] ON [dbo].[Alarm_Alarm_Info] AFTER INSERT, UPDATE  – 在更新和插入之后 AS BEGIN if update(transferNum) or update(potentialLoss) –如果Alarm_Alarm_Info表中的transferNum或potentialLoss两列发生改变所触发的事件;  或者用 or declare @transferNum int; declare @potentialLoss decimal(20,2); declare @alarmLeve int; select @transferNum=transferNum from inserted; --inserted表示当前修改的数据行 select @potentialLoss=potentialLoss from inserted; if @transferNum > 1000 or @potentialLoss > 100000000  --if条件不需要{} set @alarmLeve = 1;--特大型警情 else if 500 < @transferNum and @transferNum <= 1000 or @potentialLoss <= 100000000 and @potentialLoss > 50000000 set @alarmLeve = 2;--大型警情 else if 100 < @transferNum and @transferNum <= 500 or @potentialLoss > 5000000 and @potentialLoss <= 50000000 set @alarmLeve = 3;--中型警情 else if @transferNum <= 100 or @potentialLoss <= 5000000 set @alarmLeve = 4;--小型警情 update Alarm_Alarm_Info set alarmLevel = @alarmLeve where id = (select id from inserted); END
转载请注明原文地址: https://www.6miu.com/read-2632917.html

最新回复(0)