实时报警触发器
来源:互联网 发布:monaco for windows 编辑:程序博客网 时间:2024/06/05 04:43
USE [KS_DataBase]
GO
/****** Object: Trigger [dbo].[trgAfterUpdateRealAlarm] Script Date: 06/24/2016 17:27:03 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author: <dlsyaim>
-- Create date: <2016-06-24>
-- Description: <对KS_DataRecordRealAlarm进行判断跟新,就Update,没有Insert>
-- =============================================
ALTER TRIGGER [dbo].[trgAfterUpdateRealAlarm]
ON [dbo].[KS_DataRecordReal]
FOR UPDATE
AS
BEGIN
-- Insert statements for trigger here
--插入到KS_DataRecordRealAlarm最新报警里面
DECLARE @fStaLowLimitfloat;
DECLARE @fStaHighLimitfloat;
DECLARE @fWorLowLimitfloat;
DECLARE @fWorHighLimitfloat;
DECLARE @fTemLowLimitfloat;
DECLARE @fTemHighLimitfloat;
DECLARE @fCnsLowLimitfloat;
DECLARE @fCnsHighLimitfloat;
DECLARE @fPreLowLimitfloat;
DECLARE @fPreHighLimitfloat;
DECLARE @RamCodevarchar(100);
DECLARE @StaRecInsCumAmtfloat;
DECLARE @WorRecInsCumAmtfloat;
DECLARE @RecPressurefloat;
DECLARE @RecTemperaturefloat;
DECLARE @RecConcentrationfloat;
--SELECT @RamCode=i.RamCode from Inserted i;
--SELECT @StaRecInsCumAmt=i.StaRecInsCumAmt from Inserted i;
--SELECT @WorRecInsCumAmt=i.WorRecInsCumAmt from Inserted i;
--SELECT @RecPressure=i.RecPressure from Inserted i;
--SELECT @RecTemperature=i.RecTemperature from Inserted i;
--SELECT @RecConcentration=i.RecConcentration from Inserted i;
SELECT @RamCode=i.RamCode,@StaRecInsCumAmt=i.StaRecInsCumAmt,
@WorRecInsCumAmt=i.WorRecInsCumAmt,@RecPressure=i.RecPressure,
@RecTemperature=i.RecTemperature,@RecConcentration=i.RecConcentration from Inserted i;
SELECT @fStaLowLimit=StaLowLimit
,@fStaHighLimit=StaHighLimit
,@fWorLowLimit=WorLowLimit
,@fWorHighLimit=WorHighLimit
,@fTemLowLimit=TemLowLimit
,@fTemHighLimit=TemHighLimit
,@fCnsLowLimit=CnsLowLimit
,@fCnsHighLimit=CnsHighLimit
,@fPreLowLimit=PreLowLimit
,@fPreHighLimit=PreHighLimit
FROM [dbo].[KS_AlarmLimit] WHERE RamCode = @RamCode;
--对插入的值进行判断,只要有一个不满足,就写入到KS_DataRecordRealAlarm里面
DECLARE @bStaRecInsCumAmtint;
DECLARE @bWorRecInsCumAmtint;
DECLARE @bRecPressureint;
DECLARE @bRecTemperatureint;
DECLARE @bRecConcentrationint;
DECLARE @bFlagint;
SET @bStaRecInsCumAmt= CASE WHEN (@StaRecInsCumAmt>@fStaLowLimit and @StaRecInsCumAmt<@fStaHighLimit) THEN 1 ELSE 0 END;
SET @bWorRecInsCumAmt= CASE WHEN (@WorRecInsCumAmt>@fWorLowLimit and @WorRecInsCumAmt<@fWorHighLimit) THEN 1 ELSE 0 END;
SET @bRecPressure= CASE WHEN (@RecPressure>@fPreLowLimit and @RecPressure<@fPreHighLimit) THEN 1 ELSE 0 END;
SET @bRecTemperature= CASE WHEN (@RecTemperature>@fTemLowLimit and @RecTemperature<@fTemHighLimit) THEN 1 ELSE 0 END;
SET @bRecConcentration= CASE WHEN (@RecConcentration>@fCnsLowLimit and @RecConcentration<@fCnsHighLimit) THEN 1 ELSE 0 END;
SET @bFlag = @bStaRecInsCumAmt*@bWorRecInsCumAmt*@bRecPressure*@bRecTemperature*@bRecConcentration;
if(@bFlag = 0)
begin
;WITH ChangeAlarmList AS
(SELECT
Inserted.RamCode,
Inserted.StaRecCumAmt,
Inserted.StaRecInsCumAmt,
Inserted.WorRecCumAmt,
Inserted.WorRecInsCumAmt,
Inserted.RecPressure,
Inserted.RecTemperature,
Inserted.RecConcentration,
Inserted.ColTime,
Inserted.AddTime,
Inserted.Status
FROM Inserted
)
Merge
Into[dbo].[KS_DataRecordRealAlarm] As Tgt
Using ChangeAlarmList As Src
On
Src.RamCode = Tgt.RamCode
When Matched
Then
Update Set
TGT.RamCode=SRC.RamCode,
TGT.StaRecCumAmt=SRC.StaRecCumAmt,
TGT.StaRecInsCumAmt=SRC.StaRecInsCumAmt,
TGT.WorRecCumAmt=SRC.WorRecCumAmt,
TGT.WorRecInsCumAmt=SRC.WorRecInsCumAmt,
TGT.RecPressure=SRC.RecPressure,
TGT.RecTemperature=SRC.RecTemperature,
TGT.RecConcentration=SRC.RecConcentration,
TGT.ColTime=SRC.ColTime,
TGT.AddTime=SRC.AddTime,
TGT.Status=SRC.Status
When Not Matched
Then
Insert
( [RamCode]
,[StaRecCumAmt]
,[StaRecInsCumAmt]
,[WorRecCumAmt]
,[WorRecInsCumAmt]
,[RecPressure]
,[RecTemperature]
,[RecConcentration]
,[ColTime]
,[AddTime]
,[Status])
Values
(
SRC.RamCode,
SRC.StaRecCumAmt,
SRC.StaRecInsCumAmt,
SRC.WorRecCumAmt,
SRC.WorRecInsCumAmt,
SRC.RecPressure,
SRC.RecTemperature,
SRC.RecConcentration,
SRC.ColTime,
SRC.AddTime,
SRC.Status
);
end;
END
GO
/****** Object: Trigger [dbo].[trgAfterUpdateRealAlarm] Script Date: 06/24/2016 17:27:03 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author: <dlsyaim>
-- Create date: <2016-06-24>
-- Description: <对KS_DataRecordRealAlarm进行判断跟新,就Update,没有Insert>
-- =============================================
ALTER TRIGGER [dbo].[trgAfterUpdateRealAlarm]
ON [dbo].[KS_DataRecordReal]
FOR UPDATE
AS
BEGIN
-- Insert statements for trigger here
--插入到KS_DataRecordRealAlarm最新报警里面
DECLARE @fStaLowLimitfloat;
DECLARE @fStaHighLimitfloat;
DECLARE @fWorLowLimitfloat;
DECLARE @fWorHighLimitfloat;
DECLARE @fTemLowLimitfloat;
DECLARE @fTemHighLimitfloat;
DECLARE @fCnsLowLimitfloat;
DECLARE @fCnsHighLimitfloat;
DECLARE @fPreLowLimitfloat;
DECLARE @fPreHighLimitfloat;
DECLARE @RamCodevarchar(100);
DECLARE @StaRecInsCumAmtfloat;
DECLARE @WorRecInsCumAmtfloat;
DECLARE @RecPressurefloat;
DECLARE @RecTemperaturefloat;
DECLARE @RecConcentrationfloat;
--SELECT @RamCode=i.RamCode from Inserted i;
--SELECT @StaRecInsCumAmt=i.StaRecInsCumAmt from Inserted i;
--SELECT @WorRecInsCumAmt=i.WorRecInsCumAmt from Inserted i;
--SELECT @RecPressure=i.RecPressure from Inserted i;
--SELECT @RecTemperature=i.RecTemperature from Inserted i;
--SELECT @RecConcentration=i.RecConcentration from Inserted i;
SELECT @RamCode=i.RamCode,@StaRecInsCumAmt=i.StaRecInsCumAmt,
@WorRecInsCumAmt=i.WorRecInsCumAmt,@RecPressure=i.RecPressure,
@RecTemperature=i.RecTemperature,@RecConcentration=i.RecConcentration from Inserted i;
SELECT @fStaLowLimit=StaLowLimit
,@fStaHighLimit=StaHighLimit
,@fWorLowLimit=WorLowLimit
,@fWorHighLimit=WorHighLimit
,@fTemLowLimit=TemLowLimit
,@fTemHighLimit=TemHighLimit
,@fCnsLowLimit=CnsLowLimit
,@fCnsHighLimit=CnsHighLimit
,@fPreLowLimit=PreLowLimit
,@fPreHighLimit=PreHighLimit
FROM [dbo].[KS_AlarmLimit] WHERE RamCode = @RamCode;
--对插入的值进行判断,只要有一个不满足,就写入到KS_DataRecordRealAlarm里面
DECLARE @bStaRecInsCumAmtint;
DECLARE @bWorRecInsCumAmtint;
DECLARE @bRecPressureint;
DECLARE @bRecTemperatureint;
DECLARE @bRecConcentrationint;
DECLARE @bFlagint;
SET @bStaRecInsCumAmt= CASE WHEN (@StaRecInsCumAmt>@fStaLowLimit and @StaRecInsCumAmt<@fStaHighLimit) THEN 1 ELSE 0 END;
SET @bWorRecInsCumAmt= CASE WHEN (@WorRecInsCumAmt>@fWorLowLimit and @WorRecInsCumAmt<@fWorHighLimit) THEN 1 ELSE 0 END;
SET @bRecPressure= CASE WHEN (@RecPressure>@fPreLowLimit and @RecPressure<@fPreHighLimit) THEN 1 ELSE 0 END;
SET @bRecTemperature= CASE WHEN (@RecTemperature>@fTemLowLimit and @RecTemperature<@fTemHighLimit) THEN 1 ELSE 0 END;
SET @bRecConcentration= CASE WHEN (@RecConcentration>@fCnsLowLimit and @RecConcentration<@fCnsHighLimit) THEN 1 ELSE 0 END;
SET @bFlag = @bStaRecInsCumAmt*@bWorRecInsCumAmt*@bRecPressure*@bRecTemperature*@bRecConcentration;
if(@bFlag = 0)
begin
;WITH ChangeAlarmList AS
(SELECT
Inserted.RamCode,
Inserted.StaRecCumAmt,
Inserted.StaRecInsCumAmt,
Inserted.WorRecCumAmt,
Inserted.WorRecInsCumAmt,
Inserted.RecPressure,
Inserted.RecTemperature,
Inserted.RecConcentration,
Inserted.ColTime,
Inserted.AddTime,
Inserted.Status
FROM Inserted
)
Merge
Into[dbo].[KS_DataRecordRealAlarm] As Tgt
Using ChangeAlarmList As Src
On
Src.RamCode = Tgt.RamCode
When Matched
Then
Update Set
TGT.RamCode=SRC.RamCode,
TGT.StaRecCumAmt=SRC.StaRecCumAmt,
TGT.StaRecInsCumAmt=SRC.StaRecInsCumAmt,
TGT.WorRecCumAmt=SRC.WorRecCumAmt,
TGT.WorRecInsCumAmt=SRC.WorRecInsCumAmt,
TGT.RecPressure=SRC.RecPressure,
TGT.RecTemperature=SRC.RecTemperature,
TGT.RecConcentration=SRC.RecConcentration,
TGT.ColTime=SRC.ColTime,
TGT.AddTime=SRC.AddTime,
TGT.Status=SRC.Status
When Not Matched
Then
Insert
( [RamCode]
,[StaRecCumAmt]
,[StaRecInsCumAmt]
,[WorRecCumAmt]
,[WorRecInsCumAmt]
,[RecPressure]
,[RecTemperature]
,[RecConcentration]
,[ColTime]
,[AddTime]
,[Status])
Values
(
SRC.RamCode,
SRC.StaRecCumAmt,
SRC.StaRecInsCumAmt,
SRC.WorRecCumAmt,
SRC.WorRecInsCumAmt,
SRC.RecPressure,
SRC.RecTemperature,
SRC.RecConcentration,
SRC.ColTime,
SRC.AddTime,
SRC.Status
);
end;
END
0 0
- 实时报警触发器
- ifix5.8实时报警
- cacti组件安装-实时报警
- 善用触发器,让服务器系统自动报警
- zabbix创建触发器、action,发送报警邮件
- 系统监控:msn在线机器人实时报警
- 系统监控:msn在线机器人实时报警
- 具有报警功能的串行实时时钟
- mini2440 RTC实时时钟中断和报警功能实验
- Ehome:智能家居之按键模拟红外实时报警系统
- zabbix监控之二---zabbix导入模板,配置监控项、触发器及报警媒介
- Nagios:用门户邮箱+mailx+139邮箱实现实时短信报警
- 使用register_shutdown_function实现php项目脚本执行失败的实时报警
- 用触发器来自动实时备份重要表数据--downmoon
- 用触发器来自动实时备份重要表数据--downmoon
- 用触发器来自动实时备份重要表数据
- SQLSERVER 2000 触发器实现表的实时同步解决方案
- 用触发器来自动实时备份重要表数据
- centos 7.x设置守护进程的文件数量限制
- PHP100张恩民谈:IT人员短时间内获取三年工作经验
- shell脚本的组合运用
- 恢复centos7与windows7系统引导方法-亲测可用
- 细节积累
- 实时报警触发器
- Mysql JDBC Url参数说明
- RxJava 学习笔记(三)
- 静态类,静态函数,静态变量
- Java获取路径
- python的正则表达式
- 【StringUtils】判断字符串是否有值,判断多个字符串是否相等
- 嵌入式学习-uboot-lesson5-点亮LED
- 随机生成指定位数的验证码