SQL Server——触发器



                         

标签: sql server数据库encryption存储tabledatabase
3811人阅读 评论(42) 收藏 举报
本文章已收录于:


分类:


        在上一篇博客中我们学习总结了存储过程,今天我们学习一种特殊的存储过程——触发器。顾名思义,触发器,就是通过某个事件一触发它就会执行。现在我们还从它的概述,实现和管理三个方面来总结。

 

     一,概述:

 

             1,概念:触发器是一种特殊类型的存储过程,它在插入,删除或修改特定表中的数据时触发执行。

                               通常可以执行一定的业务规则,以保持数据的完整性,检查数据的有效性,实现数据库

                               管理任务和一些附加的功能。看这张图,我们会更明白些!

 

             2,优点:a,触发器自动执行;b,可以调用存储过程;c,可以强化数据条件的约束;d,可以禁止或回滚

                                违反引用完整性的更改;e,级联,并行运行;d,同表多触发器。

             3,分类:a,DML(Data Manipulation Language,数据操纵语言)触发器,是在执行数据操作语言事件被

                                   调用时触发的,其中insert,update和delete,alter等类型。

                                b,DLL(Dynamic Link Library,动态链接库)触发器,是由数据定义事件引起的,包括:create

                                    ,alter和drop语句。

 

     二,实现触发器:

 

            1,创建:a,MDL触发器

 

                              T-SQL语法:

                                  create  trigger [schema_name.] trigger_name on{table|view}

                                  [with   <dml_trigger_option>[,……n]]

                                  {for |after |instead of } {[insert],[update],[delete]} [with append]

                                  [not for replication] as  sql_statement[,……n]

                              语法说明:schema_name DML触发器所属架构的名称;Trigger_name  触发器的名称;

                                        <dml_trigger_option>参数项,encryption和execute as选项;with append

                                         指定应该再添加一个现有类型的触发器。Not for replication ,表示当触

                                         及触发器时,不应执行触发器。

 

                             b,DLL触发器

 

                             T-SQL语法:

                                 create trigger_name on {allserver|database}

                                  [with   <dll_trigger_option>[,……n]]

                                 {for|after} {event_type|event_group}[,……n]

                                 as  sql_statement[,……n]

                           说明:all_server|database,DDL触发器响应的范围,当前服务器或当前数据库。

                                        event_type|event_group,T-SQL语言事件的名称或事件组的名称。

 

 

           2,查看:a,查看触发器的文本信息sp_helptext

                              b,查看触发器的相关性信息sp_depends

                             c,一般信息:sp_help

                    这里查看触发器和上篇博客中查看存储过程一模一样,因为它就是特殊的存储过程。

 

 

    三,管理触发器

 

             1,修改:这里修改两种触发器就是将创建它的语法中的create改成alter既可以。

             2,删除:drop trigger

             3,启用和禁用:alter table语句用于启用和禁用触发器

                              语法:alter table table {enable|disable}trigger,其中enable为启用,disable为禁用

             4,使用嵌套触发器:利用sp_configure

                                                 语法:sp_configure [[@configname=]'name] [,[@configvalue=]'value']

                                                说明:@configname:配置选项的名称。

                                                             @configvalue当为0时为禁止嵌套,1为允许嵌套

             5,建立列级触发器:使用update来建立

                                                 语法:if update (colum1) and|or update(column2)]

              6,递归触发器:自行调用自身为递归触发器。其中又分为直接递归和间接递归。

 

        当然这些操作都可以通过MicrosoftSQL Server Management Studio来直接设置,他跟存储过程中很多东西相同,我们可以通过实践来学习很多。

 

        触发器是数据库中比较高级的应用,灵活使用触发器可以大大增强应用程序的健壮性,数据库的可恢复性和数据库的可管理性。当然,只要我们能够灵活的运用,我们可以利用它实现一些复杂的功能,简化开发步骤,降低开发成本,增加开发效率,提高数据库的可靠性。



9
0


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值