【SQL】触发器

认识

触发器的概念:

触发器(trigger)是SQL server 提供给程序员和数据分析员来保证数据完整性的一种方法,它是与表事件相关的特殊的存储过程,它的执行不是由程序调用,也不是手工启动,而是由事件来触发,比如当对一个表进行操作( insert,delete, update)时就会激活它执行。

个人理解

顾名思义,触发器就是由特定事件触发的存储过程,也就是它的运行只有程序满足特定条件的时候,它才会触发!

由此我们也能看出它和存储过程的唯一区别就是,它不能手动触发(不能执行EXECUTE语句调用)!


优点

它一般适用于互相联系的数据表操作,比如你在修改语文成绩的时候,你的总成绩就会修改,这个时候用到触发器就很方便!

  1. 自动性。只要触发条件满足,立刻被激活。

  2. 多层修改。它可以通过表格对主外键联系,对表格进行多表修改

  3. 强制限制。这些限制比用CHECK约束所定义的更复杂。与CHECK约束不同的是,触发器可以引用其他表中的列。


语法

我们常用的SQL Server数据库,如果权限不够的话,你会发现表格下的新建触发器是灰色的!

这里写图片描述

那么我就需要用到触发器的创建语法,通过新建查询创建了!

    CREATE TRIGGER trigger_name      --触发器的名字
        ON {table_name | view_name}  --触发器作用的表格
        {For | After | Instead of } [ insert, update,delete ]   --触发器作用的触发条件
    AS 
    BEGIN          
        sql_statement      --触发器的操作内容
    END

注:

在这里我们需要注意的就是,我们在设置触发条件的时候,一定要注意,是(For | After | Instead of),因为触发器一般涉及多个表格,它们之间的主外键联系会影响对你数据库的操作!


弊端

任何事物都有两面性,触发器也不例外!

我们现在用的更多的是面向对象编程,但是你应该可以感受到:其实触发器更多的是面向过程编程,所它的弊端也就暴露出来了:

  1. 它会使数据逻辑变得复杂。
  2. 代码存放在数据库,数据操作不够明显,不易修改。
  3. 很多触发器中的代码可以被B层(逻辑)代码所取代。



后语

理解建立在自己已经学到的知识之上(n+1原则)!


希望本文对您有所帮助!
有什么不足!欢迎指正!
感觉不错可以赞一下哦!

猜你喜欢

转载自blog.csdn.net/lk1822791193/article/details/80797365
今日推荐