SQL的触发器

认识

触发器的概念:

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

个人理解

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

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

 

优点

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

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

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

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

 

语法

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

这里写图片描述

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

<span style="color:#000000"><code>    <span style="color:#000088">CREATE</span> <span style="color:#000088">TRIGGER</span> trigger_name      --触发器的名字
        <span style="color:#000088">ON</span> {table_name | view_name}  --触发器作用的表格
        {<span style="color:#000088">For</span> | <span style="color:#000088">After</span> | Instead <span style="color:#000088">of</span> } [ <span style="color:#000088">insert</span>, <span style="color:#000088">update</span>,<span style="color:#000088">delete</span> ]   --触发器作用的触发条件
    <span style="color:#000088">AS</span> 
    <span style="color:#000088">BEGIN</span>          
        sql_statement      --触发器的操作内容
    <span style="color:#000088">END</span></code></span>
  •  

注:

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

 

弊端

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

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

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

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值