• 触发器基本使用


    1、 after触发器(之后触发)
        a、 insert触发器
        b、 update触发器
        c、 delete触发器
    2、 instead of 触发器 (之前触发)
    
    触发器语句中使用了两种特殊的表:deleted 表和 inserted 表。
    Deleted 表用于存储 DELETEUPDATE 语句所影响的行的复本。在执行 DELETEUPDATE 语句时,行从触发器表中删除,并传输到 deleted 表中。Deleted 表和触发器表通常没有相同的行。
    Inserted 表用于存储 INSERTUPDATE 语句所影响的行的副本。在一个插入或更新事务处理中,新建行被同时添加到 inserted 表和触发器表中。Inserted 表中的行是触发器表中新行的副本。
    
    1.插入操作(Insert) 
      Inserted表有数据,Deleted表无数据 
    2.删除操作(Delete) 
      Inserted表无数据,Deleted表有数据 
    3.更新操作(Update) 
      Inserted表有数据(新数据),Deleted表有数据(旧数据)

    示例:根据tb1表同步(增、删、改)tb2表

     --增加数据
    CREATE TRIGGER insertTrg
    ON tb1
    FOR INSERT
    AS
        DECLARE @id VARCHAR,@val VARCHAR
        SELECT @id = id FROM INSERTED
        SELECT @val = val FROM INSERTED
        
        INSERT INTO tb2
        VALUES(@id , @val)
        
    --修改数据
    CREATE TRIGGER updateTrg
    ON tb1
    FOR UPDATE
    AS
        UPDATE tb2
        SET val = (SELECT val FROM INSERTED)
        WHERE  id = (SELECT id FROM INSERTED)
    
    --删除数据    
    CREATE TRIGGER delTrg
    ON tb1
    FOR DELETE
    AS
        DELETE 
        FROM   tb2
        WHERE  id = (SELECT id FROM DELETED)
  • 相关阅读:
    web&http协议&django初识
    jQuery
    BOM&DOM
    装饰器
    JavaScript
    模块
    面向对象编程
    函数
    CSS
    HTML
  • 原文地址:https://www.cnblogs.com/liessay/p/8076179.html
Copyright © 2020-2023  润新知