触发器(Trigger)(一)

 
  触发器简介
触发器实际上就是一种特殊类型的存储过程,它是在执行某些特定的 T-SQL 语句时自动执行的一种存储过程。在 SQL Server 2005 中,根据 SQL 语句的不同,把触发器分为两类:一类是 DML 触发器,一类是 DLL 触发器。
  触发器的概念和作用
SQL Server 2005 里,可以用两种方法来保证数据的有效性和完整性:约束( check )和触发器( Trigger )。约束是直接设置于数据表内,只能现实一些比较简单的功能操作,如:实现字段有效性和唯一性的检查、自动填入默认值、确保字段数据不重复(即主键)、确保数据表对应的完整性(即外键)等功能。
触发器是针对数据表(库)的特殊的存储过程,当这个表发生了 Insert Update Delete 操作时,会自动激活执行的,可以处理各种复杂的操作。在 SQL Server 2005 中,触发器有了更进一步的功能,在数据表(库)发生 Create Alter Drop 操作时,也会自动激活执行。
触发器常用的一些功能如下:
完成比约束更复杂的数据约束:触发器可以实现比约束更为复杂的数据约束
检查所做的 SQL 是否允许:触发器可以检查 SQL 所做的操作是否被允许。例如:在产品库存表里,如果要删除一条产品记录,在删除记录时,触发器可以检查该产品库存数量是否为零,如果不为零则取消该删除操作。
修改其它数据表里的数据:当一个 SQL 语句对数据表进行操作的时候,触发器可以根据该 SQL 语句的操作情况来对另一个数据表进行操作。例如:一个订单取消的时候,那么触发器可以自动修改产品库存表,在订购量的字段上减去被取消订单的订购数量。
调用更多的存储过程:约束的本身是不能调用存储过程的,但是触发器本身就是一种存储过程,而存储过程是可以嵌套使用的,所以触发器也可以调用一个或多过存储过程。
发送 SQL Mail :在 SQL 语句执行完之后,触发器可以判断更改过的记录是否达到一定条件,如果达到这个条件的话,触发器可以自动调用 SQL Mail 来发送邮件。例如:当一个订单交费之后,可以物流人员发送 Email ,通知他尽快发货。
返回自定义的错误信息:约束是不能返回信息的,而触发器可以。例如插入一条重复记录时,可以返回一个具体的友好的错误信息给前台应用程序。
更改原本要操作的 SQL 语句:触发器可以修改原本要操作的 SQL 语句,例如原本的 SQL 语句是要删除数据表里的记录,但该数据表里的记录是最要记录,不允许删除的,那么触发器可以不执行该语句。
防止数据表构结更改或数据表被删除:为了保护已经建好的数据表,触发器可以在接收到 Drop Alter 开头的 SQL 语句里,不进行对数据表的操作。
 
  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值