zoukankan      html  css  js  c++  java
  • Create trigger


    -- =============================================
    -- Create trigger basic template(After trigger)
    -- =============================================
    IF EXISTS (SELECT name
           FROM   sysobjects
           WHERE  name = N'<trigger_name, sysname, trig_test>'
           AND       type = 'TR')
        DROP TRIGGER <trigger_name, sysname, trig_test>
    GO

    CREATE TRIGGER <trigger_name, sysname, trig_test>
    ON <table_name, sysname, pubs.dbo.sales>
    FOR DELETE, INSERT, UPDATE
    AS
    BEGIN
        RAISERROR (50009, 16, 10)
    END
    GO

    -- =============================================
    -- Create trigger contained If UPDATE(column)
    -- =============================================
    IF EXISTS (SELECT name
           FROM   sysobjects
           WHERE  name = N'<trigger_name, sysname, trig_test>'
           AND       type = 'TR')
        DROP TRIGGER <trigger_name, sysname, trig_test>
    GO

    CREATE TRIGGER <trigger_name, sysname, trig_test>
    ON <table_or_view_name, sysname, pubs.dbo.sales>
    FOR INSERT, UPDATE
    AS
    If UPDATE(<column_1, sysname, stor_id>) OR UPDATE(<column_2, sysname, ord_num>)
    BEGIN
        RAISERROR ('These columns should never be updated', 16, 1)
        ROLLBACK TRANSACTION
    END
    GO

    -- =============================================
    -- Create trigger contained If (COLUMNS_UPDATED())
    -- =============================================
    IF EXISTS (SELECT name
           FROM   sysobjects
           WHERE  name = N'<trigger_name, sysname, trig_test>'
           AND       type = 'TR')
        DROP TRIGGER <trigger_name, sysname, trig_test>
    GO

    CREATE TRIGGER <trigger_name, sysname, trig_test>
    ON <table_or_view_name, sysname, pubs.dbo.sales>
    FOR INSERT, UPDATE
    AS
    --eg. check if all of column 2, 3, 4 are updated
    IF (COLUMNS_UPDATED() & 14) = 14
    BEGIN
        RAISERROR ('These columns can not be updated at the same time', 16, 1)
        ROLLBACK TRANSACTION
    END
    GO

    -- =============================================
    -- Create basic Instead Of Trigger
    -- =============================================
    IF EXISTS (SELECT name
           FROM   sysobjects
           WHERE  name = N'<trigger_name, sysname, trig_test>'
           AND       type = 'TR')
        DROP TRIGGER <trigger_name, sysname, trig_test>
    GO

    CREATE TRIGGER <trigger_name, sysname, trig_test>
    ON <table_or_view_name, sysname, pubs.dbo.sales>
    INSTEAD OF INSERT
    AS
    BEGIN
        RAISERROR (50009, 16, 10)
        EXEC sp_who
    END
    GO

  • 相关阅读:
    【命令】set命令
    【命令】ln命令
    【命令】htop命令
    【命令】top命令
    【命令】ps命令
    【命令】kill命令
    【命令】pstree命令
    【进程/作业管理】篇章一:Linux进程及其管理(进程管理类工具)----pstree、ps、top、htop、kill、(killall、pkill、pgrep、pidof)
    【进程/作业管理】篇章四:Linux任务计划、周期性任务执行
    【进程/作业管理】篇章二:Linux系统作业控制(jobs)
  • 原文地址:https://www.cnblogs.com/mingyongcheng/p/1995132.html
Copyright © 2011-2022 走看看