• MSSQL 触发器


    触发器是在对表进行插入、更新或删除操作时自动执行的存储过程,通常用于强制业务规则,一种高级约束,可以定义比用CHECK 约束更为复杂的约束。

    特点:

    View Code
    触发器定义在特定的表上,与表相关
    自动触发执行
    不能直接调用
    是一个事务(可回滚)
    
    触发器触发时:
    系统自动在内存中创建deleted表或inserted表
    只读,不允许修改;触发器执行完成后,自动删除
    inserted 表 
    临时保存了插入或更新后的记录行 
    可以从inserted表中检查插入的数据是否满足业务需求
    如果不满足,则向用户报告错误消息,并回滚插入操作
    deleted 表
    临时保存了删除或更新前的记录行 
    可以从deleted表中检查被删除的数据是否满足业务需求
    如果不满足,则向用户报告错误消息,并回滚插入操作

    类型:

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

     语法:

    CREATE TRIGGER 触发器名称
    ON 
    { FOR|AFTER|INSTEAD ON}
    { [INSERT][,][DELETE][,][UPDATE]}
    AS
      SQL 语句[.....n]
    GO

    更详细的语法结构

    CREATE TRIGGER trigger_name 
    ON { table | view } 
    [ WITH ENCRYPTION ] 
    {
        { { FOR | AFTER | INSTEAD OF } { [ INSERT ] [ , ] [ UPDATE ] }
            [ WITH APPEND ]
            [ NOT FOR REPLICATION ]
            AS
            [ { IF UPDATE ( column )
                [ { AND | OR } UPDATE ( column ) ]
                    [ n ]
            | IF ( COLUMNS_UPDATED ( ) { bitwise_operator } updated_bitmask )
                    { comparison_operator } column_bitmask [ n ]
            } ] 
            sql_statement [ n ] 
        } 
    } 

     Inserted 和 Deleted
     

    实例:

  • 相关阅读:
    扩展中国剩余定理学习笔记
    寻找宝藏
    卢卡斯定理学习笔记
    [国家集训]矩阵乘法
    中国剩余定理学习笔记
    [CTSC2018]混合果汁
    数据结构(C语言版)第二章2.82.11 动态链表
    数据结构(C语言版)第二章2.12.7
    C语言中换行符和回车符的区别(转)
    C的xml编程libxml2(转摘)
  • 原文地址:https://www.cnblogs.com/gzh4455/p/2547741.html
Copyright © 2020-2023  润新知