MSSQL触发器为什么自动删除了??????????
下面是我创建的一个触发器,当光伏电池数值超过设定的范围就会插入故障表,
但是在刚刚建立的触发器时,可以将故障数据插入到故障表,之后这个触发器就自动消失了.也就是创建过后只运行一次.
(奇怪的事,我的另一个表用的是同样的语法结构,也用了触发器,这个触发器没有消失,正常运行)
以下是代码:
use GFZX1
IF EXISTS (SELECT NAME FROM SYSOBJECTS WHERE XTYPE = 'TR' AND NAME = 'T_FUALTJUDGE_光伏电池Agent')
DROP TRIGGER T_FUALTJUDGE_光伏电池Agent
GO
CREATE TRIGGER T_FUALTJUDGE_光伏电池Agent
ON 光伏电池Agent
FOR INSERT,UPDATE
AS BEGIN
DECLARE @光伏ID char(20)
SET @光伏ID=(SELECT 光伏ID From INSERTED)
DECLARE @光伏名称 varchar(50)
SET @光伏名称=(SELECT 光伏名称 From INSERTED)
DECLARE @微网AgentID char(20)
SET @微网AgentID=(SELECT 微网AgentID From INSERTED)
DECLARE @发电量 float
SET @发电量=(SELECT 发电量 From INSERTED)
DECLARE @开路电压 float
SET @开路电压=(SELECT 开路电压 From INSERTED)
DECLARE @短路电流 float
SET @短路电流=(SELECT 短路电流 From INSERTED)
DECLARE @最大发电量 float
SET @最大发电量=(SELECT 最大发电量 From INSERTED)
DECLARE @开路电压最大值 float
SET @开路电压最大值=(SELECT 开路电压最大值 From INSERTED)
DECLARE @短路电流最大值 float
SET @短路电流最大值=(SELECT 短路电流最大值 From INSERTED)
DECLARE @最小发电量 float
SET @最小发电量=(SELECT 最小发电量 From INSERTED)
DECLARE @开路电压最小值 float
SET @开路电压最小值=(SELECT 开路电压最小值 From INSERTED)
DECLARE @短路电流最小值 float
SET @短路电流最小值=(SELECT 短路电流最小值 From INSERTED)
DECLARE @时间 DateTime
SET @时间=(SELECT 时间 From INSERTED)
/*UPDATE Agent注册信息表
SET 发电量=发电量-@消耗功率,
时间=@时间
where AgentID=@微网AgentID*/
if(@开路电压>@开路电压最大值)
begin
INSERT INTO 故障
values(@光伏ID,@光伏名称,@开路电压,@短路电流,@发电量,'电压过大',@微网AgentID,@时间,NULL);
END
if(@短路电流>@短路电流最大值)
begin
INSERT INTO 故障
values(@光伏ID,@光伏名称,@开路电压,@短路电流,@发电量,'电流过大',@微网AgentID,@时间,NULL);
end
if(@发电量>@最大发电量)
begin
INSERT INTO 故障
values(@光伏ID,@光伏名称,@开路电压,@短路电流,@发电量,'发电量太大',@微网AgentID,@时间,NULL);
end
if(@开路电压<@开路电压最小值)
begin
INSERT INTO 故障
values(@光伏ID,@光伏名称,@开路电压,@短路电流,@发电量,'电压过小',@微网AgentID,@时间,NULL);
end
if(@短路电流<@短路电流最小值)
begin
INSERT INTO 故障
values(@光伏ID,@光伏名称,@开路电压,@短路电流,@发电量,'电流过小',@微网AgentID,@时间,NULL);
end
if(@发电量<@最小发电量)
begin
INSERT INTO 故障
values(@光伏ID,@光伏名称,@开路电压,@短路电流,@发电量,'发电量过小',@微网AgentID,@时间,NULL)
END
END
请高手们看看,小弟不甚感激,急!!!!!!!!!!!!!! 这个没有错误,也能执行,但触发一次后,这个触发器就自动消失了,??????