zoukankan      html  css  js  c++  java
  • SQL Sever触发器的基本语法与作用

    本人萌新,对sql语句不是特别了解,有错误,或者解释不正确请不吝赐教,谢谢啦

     

    什么是触发器?

    • 触发器是在对表进行插入、更新或删除操作时自动执行的存储过程
    • 触发器通常用于强制业务规则
    • 触发器是一种高级约束,可以定义比用CHECK 约束更为复杂的约束 :可执行复杂的SQL语句(if/while/case)、可引用其它表中的列
    • 触发器定义在特定的表上,与表相关。
    •  自动触发执行
    •  不能直接调用
    •  是一个事务(可回滚)

    使用触发器的好处

    触发器可通过数据库中的相关表实现级联更改,不过,通过级联引用完整性约束可以更有效地执行这些更改。
    触发器可以强制比用CHECK约束定义的约束更为复杂的约束。与 CHECK 约束不同,触发器可以引用
    其它表中的列。例如,触发器可以使用另一个表中的 SELECT 比较插入或更新的数据,以及执行其它操作,
    如修改数据或显示用户定义错误信息。触发器也可以评估数据修改前后的表状态,并根据其差异采取对策。
    一个表中的多个同类触发器(INSERT、UPDATE 或 DELETE)允许采取多个不同的对策以响应同一个修改语句。
     

    触发器的类型

    • DELETE 触发器
    • INSERT 触发器
    • UPDATE 触发器

    创建触发的语法

    CREATE TRIGGER trigger_name      --触发器名称
     ON table_name                   --触发的表
     [WITH ENCRYPTION]
      FOR [DELETE, INSERT, UPDATE]   --选择触发器类型
     AS                              --触发后要做的语句
      T-SQL语句
    GO                               --结束标记

    --删除触发器

    drop TRIGGER 触发器名

    ----------------------------------------------------------------------------------分割线--------------------------------------------------------------------------------------------实例2

    ----触发器添加(delete):当删除子表时触发自动删除主表,

    CREATE TRIGGER dele -- dele触发器
    ON result --要触发的表(子表)
    FOR DELETE --删除触发 [ insert, update,delete ]可选

    AS --触发之后做的事情
    delete studb --主表

    where id=( SELECT sid FROM deleted ) --daleted:表示删除的那条数据的对象

    go --结束标签

    delete result where id=43
    --删除触发器
    drop TRIGGER dele


    select * from dbo.studb
    select * from result

    ------------------------------------------------------------------------------------------------------------------------
    ------实例2

    --------------修改触发器

    CREATE TRIGGER updat -- update触发器
    ON studb --要触发的表(子表)
    FOR update --修改触发 [ insert, update,delete ]可选

    AS --触发之后做的事情

    update result SET mark=99
    where sid=( SELECT id FROM inserted )

    go --结束标记

    update dbo.studb
    SET
    name = '小啦'
    where id= 23

    --删除触发器操作
    drop TRIGGER updat

  • 相关阅读:
    前端agl分页的写法
    分布式项目spring 配置文件的约束
    电脑维修常用硬件技术
    电脑维修常用检修软件技术
    电脑维修快速入门
    电脑维修基本流程
    re模块
    flask-本地线程-请求上下文补充
    SEO(搜索引擎优化)
    前端基础之jquery
  • 原文地址:https://www.cnblogs.com/wangshaod/p/9547709.html
Copyright © 2011-2022 走看看