MSSQL触发器为什么自动删除了??????????

LillteLillteHui 2010-04-02 09:55:20
下面是我创建的一个触发器,当光伏电池数值超过设定的范围就会插入故障表,
但是在刚刚建立的触发器时,可以将故障数据插入到故障表,之后这个触发器就自动消失了.也就是创建过后只运行一次.
(奇怪的事,我的另一个表用的是同样的语法结构,也用了触发器,这个触发器没有消失,正常运行)

以下是代码:
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

请高手们看看,小弟不甚感激,急!!!!!!!!!!!!!! 这个没有错误,也能执行,但触发一次后,这个触发器就自动消失了,??????
...全文
209 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
LillteLillteHui 2010-04-08
  • 打赏
  • 举报
回复
经过几天没理它,发现原来在另一个地方将其不小心删了......囧!!
结贴了
yujunlin32167 2010-04-06
  • 打赏
  • 举报
回复
路过,学习了....
LillteLillteHui 2010-04-06
  • 打赏
  • 举报
回复
还有没有谁清楚这个原因!!
  • 打赏
  • 举报
回复
看代码没有问题,考虑你的数据库环境吧。
永生天地 2010-04-03
  • 打赏
  • 举报
回复
IF EXISTS (SELECT NAME FROM SYSOBJECTS WHERE XTYPE = 'TR' AND NAME = 'T_FUALTJUDGE_光伏电池Agent')
用这个来判断一下,看看是不是真的没有了
验证码识别 2010-04-03
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 herowang 的回复:]
这个问题超乎想象。友情帮顶
[/Quote]
up
  • 打赏
  • 举报
回复
这个问题超乎想象。友情帮顶
老黎 2010-04-03
  • 打赏
  • 举报
回复
建议一步步的print中间数据出来
一步步分析
喜-喜 2010-04-03
  • 打赏
  • 举报
回复
2012了
LillteLillteHui 2010-04-02
  • 打赏
  • 举报
回复
重新装了一下,还是不可以,各位帮帮忙啊!!!!!!!!!!!!!!!!!
LillteLillteHui 2010-04-02
  • 打赏
  • 举报
回复
我没有删除表
LillteLillteHui 2010-04-02
  • 打赏
  • 举报
回复
我现在急死了,找不出原因,

这样用触发器来判断故障也应该合理吧
--小F-- 2010-04-02
  • 打赏
  • 举报
回复
不一定是触发器的问题..
LillteLillteHui 2010-04-02
  • 打赏
  • 举报
回复
但是同样的另一个触发器可以,也是同样的结构
htl258_Tony 2010-04-02
  • 打赏
  • 举报
回复
楼主的问题原因不明.

这个触发器如果多条记录同时插入时就不正确了
dawugui 2010-04-02
  • 打赏
  • 举报
回复
之后这个触发器就自动消失了?

有鬼?帮顶.
ACMAIN_CHM 2010-04-02
  • 打赏
  • 举报
回复
你不是中途删除过这张表?

27,579

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 应用实例
社区管理员
  • 应用实例社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧