SQLServer入门学习之(一句话学会触发器)

1. 首先,创建一个Trigger,这个Trigger防止输入过多相同EID的人员的信息(小于等于2条)

1 create trigger trg_att_inst
2 on Attendance
3 after insert
4 as
5 declare @IEid varchar(10)
6 select @IEid = Eid from inserted
7 if(select count(*) from Attendance where Attendance.Eid=@IEid)> 2
8 rollback
9 print '哈哈 你被终结了!不能输入多余3条Eid相同的记录哦亲!'

2.分析一下这段代码

1 create trigger trg_att_inst
2 on Attendance

在Attendance表中生成一个叫做trg_att_inst的触发器

after insert

这段代码的意思是在插入命令发生后触发,另外还有其他两个类似指令after=for,instead of字面意思表示取而代之发生,也就是阻止插入

1 as
2 declare @IEid varchar(10)
3 select @IEid = Eid from inserted
4 if(select count(*) from Attendance where Attendance.Eid=@IEid)> 2
5 rollback
6 print '哈哈 你被终结了!不能输入多余3条Eid相同的记录哦亲!'

这一部分是事务处理块了,意图是如果插入行的Eid在表中存在大于2条记录,则回滚不插入数据

3. 测试一下哈

Attendance表中已经有了两条Eid=3的记录,所以会阻止继续插入Eid等于3的数据哦

1 insert into Attendance(Eid
2       ,Date
3       ,result
4       ,details
5       ,remarks) values('3',cast('2009-01-01' as datetime),'','','')

在SMS中显示如下结果

4. 搞定收工,删除这个测试的Trigger

drop trigger trg_att_inst 

 

 

恭喜,你已经学会Tigger的使用了!!!

转载于:https://www.cnblogs.com/codekiss/p/3614248.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值