zoukankan      html  css  js  c++  java
  • 关于TSQL中触发器的只言片语

    近来又要写触发器.所以写了个够..写到有点小累.

    在这里记起一小段.作一个记录吧

    下面两种方法都可以查到有哪此触发器,
    1.

    select * from sysobjects where xtype='TR' and name like '%AOC%'

    2

    select * from sys.triggers

    但第二种更可以查到一个触发器是否处于禁用状态.

    对于启用触发器.可以单个单个地去启用或禁用,当然也可以按表来启用或禁用

    下面语句就是对M_AOC表上所所有触发器进行操作

    disable trigger ALL on  M_AOC
    enable trigger ALL on  M_AOC

    对于一些需要更新前就作检查的操作.需要用到instead_of触发器

    其语句如下.

    /*
    EnumType(NodeType)    监控系统数据的种类    
            STATION=0    局、站
            DEVICE=1    设备
            DI=2    数字输入量(包含多态数字输入量)
            AI=3    模拟输入量
            DO=4    数字输出量
            AO=5    模拟输出量
    
    OperationType(OperateFlag)        对象属性修改类型        
                    ADDNONODES=0        新增(无子节点)
                    ADDINNODES=1        新增(含子节点)
                    DELETE=2                删除
                    MODIFYNONODES=3        修改(仅修改本节点)
                    MODIFYINNODES=4        修改(涉及到子节点)
    
                m_station    m_device    m_4Remote
        insert    1            1            0
        update    3            3            3
        delete    2            2            2
    */
    -- this trigger for avoid updating the same data from LSC to CSC_distributed
    IF OBJECT_ID ('tri_instead_of_update_M_AIC', 'TR') is NOT NULL
    DROP TRIGGER tri_instead_of_update_M_AIC
    go
    
    CREATE TRIGGER tri_instead_of_update_M_AIC
       ON M_AIC
       INSTEAD OF UPDATE
    AS
    BEGIN
    ...
    --you code here
    END

    对于一般触发器可以这样操作

    /*
    EnumType(NodeType)    监控系统数据的种类    STATION=0    局、站
            DEVICE=1    设备
            DI=2    数字输入量(包含多态数字输入量)
            AI=3    模拟输入量
            DO=4    数字输出量
            AO=5    模拟输出量
    
    OperationType(OperateFlag)        对象属性修改类型        
                    ADDNONODES=0        新增(无子节点)
                    ADDINNODES=1        新增(含子节点)
                    DELETE=2                删除
                    MODIFYNONODES=3        修改(仅修改本节点)
                    MODIFYINNODES=4        修改(涉及到子节点)
    
                m_station    m_device    m_4Remote
        insert    1            1            0
        update    3            3           3
        delete    2            2            2
    */
    
    
    USE CSC_Distributed
    
    IF OBJECT_ID( 'tri_insert_M_AIC', 'TR') is not NULL
        DROP TRIGGER tri_insert_M_AIC
    go
    
    
    
    CREATE TRIGGER tri_insert_M_AIC
       ON M_AIC
       AFTER INSERT
    AS
    BEGIN
    ...
    --you code here
    END
  • 相关阅读:
    Android中的Intent详解
    Android数据保存之文件保存
    Android数据保存之SharedPreference
    Activity的生命周期函数
    Android主线程的消息系统(HandlerLooper)
    Activity生命周期
    Android内存优化之磁盘缓存
    Android内存优化之内存缓存
    Android Bitmap那些事之如何优化内存
    Bitmap那些事之内存占用计算和加载注意事项
  • 原文地址:https://www.cnblogs.com/vimmer/p/2779248.html
Copyright © 2011-2022 走看看