触发器自动启用,谁能解释?

James__z 2017-10-31 03:00:50
USE [szfc_k3]
GO
/****** Object: Trigger [dbo].[ICStockBill_XZZWRQ] Script Date: 10/31/2017 15:00:37 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER trigger [dbo].[ICStockBill_XZZWRQ] on [dbo].[ICStockBill]--限制账务日期
for update,insert
as

set nocount on

declare @finterid int
select @finterid=finterid from inserted
if exists(select 1 from icstockbill a inner join icstockbillentry b on a.finterid=b.finterid
where ( a.FDate like '%30%')
and a.FInterID=@finterid and a.FStatus=0)
begin
raiserror('账务日期错误!!!',18,18)
rollback tran
return
end

set nocount off
...全文
2231 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
听雨停了 2017-10-31
  • 打赏
  • 举报
回复
引用 4 楼 adminiss 的回复:
[quote=引用 2 楼 qq_37170555 的回复:] 为什么说触发器自动启动了呢,何以见得是触发器自动启动了
我亲手禁用的,后面同事报数据异常,一看就知道是这个控制日期的触发器在影响!!![/quote] 你这个触发器的功能就是防止数据插入,你把触发器禁用了,自然不管什么日期的数据都能插入了,所以你同事说数据异常啊
James__z 2017-10-31
  • 打赏
  • 举报
回复
引用 5 楼 z10843087 的回复:
[quote=引用 4 楼 adminiss 的回复:] [quote=引用 2 楼 qq_37170555 的回复:] 为什么说触发器自动启动了呢,何以见得是触发器自动启动了
我亲手禁用的,后面同事报数据异常,一看就知道是这个控制日期的触发器在影响!!![/quote] 在触发器代码中,加个记录日志的语句,看看是不是真的自动启用了。 另外,想办法排查下是不是人为的操作[/quote] 人为已经排除了。
OwenZeng_DBA 2017-10-31
  • 打赏
  • 举报
回复
引用 6 楼 superwfei 的回复:
禁用后的触发器一旦修改保存,自动启用,这个问题我前两天刚遇到
数据库哪个版本,你是怎么修改的,,alter trigger?
文盲老顾 2017-10-31
  • 打赏
  • 举报
回复
禁用后的触发器一旦修改保存,自动启用,这个问题我前两天刚遇到
OwenZeng_DBA 2017-10-31
  • 打赏
  • 举报
回复
引用 4 楼 adminiss 的回复:
[quote=引用 2 楼 qq_37170555 的回复:] 为什么说触发器自动启动了呢,何以见得是触发器自动启动了
我亲手禁用的,后面同事报数据异常,一看就知道是这个控制日期的触发器在影响!!![/quote] 在触发器代码中,加个记录日志的语句,看看是不是真的自动启用了。 另外,想办法排查下是不是人为的操作
James__z 2017-10-31
  • 打赏
  • 举报
回复
引用 2 楼 qq_37170555 的回复:
为什么说触发器自动启动了呢,何以见得是触发器自动启动了
我亲手禁用的,后面同事报数据异常,一看就知道是这个控制日期的触发器在影响!!!
吉普赛的歌 2017-10-31
  • 打赏
  • 举报
回复
1. 先添加一个SQL邮件账户 http://blog.csdn.net/yenange/article/details/10349773 2. 加一个作业, 每10秒执行一次, 如果启动了立马发邮件通知你
IF EXISTS(SELECT 1 FROM sys.triggers AS t WHERE t.is_disabled=0 AND t.name='ICStockBill_XZZWRQ')
BEGIN
	--发送邮件  
	EXEC msdb..sp_send_dbmail  
		 @profile_name = 'ErrorEmailProfile',  
		 @recipients = 'xxxxx@qq.com',  --收件人,你的邮件  
		 @subject = '预警:该死的触发器又启用了!',  
		 @body = N'该死的触发器 ICStockBill_XZZWRQ 又启用了!'  
END
听雨停了 2017-10-31
  • 打赏
  • 举报
回复
为什么说触发器自动启动了呢,何以见得是触发器自动启动了
二月十六 2017-10-31
  • 打赏
  • 举报
回复
不用就删了,干净省心。 如果不用还要留着,还得为为什么它会自动启用而发愁,那就增加一个日志记录,谁什么时候触发了触发器

6,129

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 新技术前沿
社区管理员
  • 新技术前沿社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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