SQLSERVER的触发器

触发器的定义:触发器是一种特殊类型的存储过程,他不同于前面介绍过的一般的存储过程(在SQL内部把触发器看做是存储过程但是不能传递参数).一般的存储过程通过存储过程名称被直接调用,而触发器主要是通过事件进行触发而被执行.总的来说,触发器是一种功能强大的工具,在表中数据发生变化时自动强制执行,触发器还可以用于sqlserver约束.默认值和规则的完整性检查,还可以完成难以用普通约束实现的复杂功能
触发器的作用:
自动化操作,减少了手动操作及出错的几率

小知识点:在sqlserver数据库中隐藏的两个表
inserted,deleted表.
inserted表:当执行insert语句时,添加的数据也会加到inserted表中
deleted表:当执行delete from时,数据会放置到deleted表中.
注意,当update时,先将语句删除到deleted表中,然后在将新的数据插入到inserted表及目的表.

触发器多用于数据备份

创建一个表,表的机构和原表结构一样,但是没有数据

select top 0 into nStu from stu  //复制表stu的结构至nStu表

触发器案例:当删除学生表中的数据的同时,把删除的这个数据存放到我的新表中.

create trigger tr_stuTrigger on stu//注意触发器的写法已tr_开头
after delete
as
begin 
insert into nStu select * from deleted
end

触发器的使用建议:尽量避免在触发器中执行耗时,复杂的操作,因为触发器会与sql语句认为在同一个事务中,事务不结束,就无法释放锁.触发器编写时要多注意对多行触发时的处理.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值