SQL触发器使用 禁用并重新启用触发器

--选择用户数据库

use mydb
go

SQL触发器使用 问题描述

/*
如何使触发器失效,但是不删除触发器,然后又如何使无效的触发器激活 
---------------------------------------------------------------
禁用并重新启用触发器 
下例使用 ALTER TABLE 的 DISABLE TRIGGER 选项来禁用触发器,
以使正常情况下会违反触发器条件的插入操作得以执行。
然后下例使用 ENABLE TRIGGER 重新启用触发器。 */

--SQL触发器使用 创建测试环境

create table tb  
( id INT,  
  name VARCHAR(20),
  salary MONEY
) 
go

--SQL触发器使用 创建触发器

CREATE TRIGGER tri_insalary ON tb FOR INSERT 
as   
IF (SELECT COUNT(*) FROM INSERTED  
 WHERE salary > 100000) > 0  
BEGIN  
 print '错误提示: 您插入了一个大于 $100,000'  
 ROLLBACK TRANSACTION  
END  
GO 

--插入测试  触发器正常使用情况下

INSERT INTO tb VALUES (1,'Pat Smith',100001) 
GO  

--SQL触发器使用 禁用触发器

ALTER TABLE tb DISABLE TRIGGER tri_insalary  
GO  

--SQL触发器使用 插入测试 触发器失效情况下

INSERT INTO tb VALUES (2,'Chuck Jones',100001)  
GO  

--SQL触发器使用 启用触发器

ALTER TABLE tb ENABLE TRIGGER tri_insalary  
GO  

--SQL触发器使用 插入测试  触发重新启用情况下

INSERT INTO tb VALUES (3,'Mary Booth',100001) 
GO

--SQL触发器使用 删除测试环境

drop table tb
SQL触发器使用
http://www.db001.com/html/MSSQL/2010/0721/195.html
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值