TRIGGER的使用(修改SP自动触发)

系统 2147 0
      
         1
      
      
        CREATE
      
      
        TRIGGER
      
      
        [
      
      
        trg_save_change_SP
      
      
        ]
      
      
         2
      
      
        ON
      
      
        DATABASE
      
      
         3
      
      
        FOR
      
      
         CREATE_PROCEDURE, ALTER_PROCEDURE,DROP_PROCEDURE


      
      
         4
      
      
        AS
      
      
         5
      
      
        DECLARE
      
      
        @data
      
      
         XML


      
      
         6
      
      
        DECLARE
      
      
        @InstanceName
      
      
        nvarchar
      
      (
      
        200
      
      
        ),


      
      
         7
      
      
        @DBName
      
      
        nvarchar
      
      (
      
        100
      
      
        ) ,


      
      
         8
      
      
        @ObjectID
      
      
        int
      
      
        , 


      
      
         9
      
      
        @Version
      
      
        int
      
      
         ,         


      
      
        10
      
      
        @DBUser
      
      
        nvarchar
      
      (
      
        100
      
      
        ),


      
      
        11
      
      
        @InDateTime
      
      
        datetime
      
      
        , 


      
      
        12
      
      
        @HostName
      
      
        nvarchar
      
      (
      
        200
      
      
        ),


      
      
        13
      
      
        @LoginName
      
      
        nvarchar
      
      (
      
        100
      
      
        ),


      
      
        14
      
      
        @EventName
      
      
        nvarchar
      
      (
      
        100
      
      
        ),    


      
      
        15
      
      
        @ObjectName
      
      
        nvarchar
      
      (
      
        200
      
      
        )  ,            


      
      
        16
      
      
        @TSQL
      
      
        nvarchar
      
      (
      
        max
      
      
        ),


      
      
        17
      
      
        @ObjectType
      
      
        char
      
      (
      
        2
      
      
        ),


      
      
        18
      
      
        @SeqNo
      
      
        int
      
      
        19
      
      
        20
      
      
        SET
      
      
        @data
      
      
        =
      
      
         EVENTDATA()


      
      
        21
      
      
        22
      
      
        SELECT
      
      
        23
      
      
        @InstanceName
      
      
        =
      
      
        @@SERVERNAME
      
      
           ,


      
      
        24
      
      
        @DBName
      
      
        =
      
      
        DB_NAME
      
      
        (),


      
      
        25
      
      
        @HostName
      
      
        =
      
      
         hostname,  


      
      
        26
      
      
        @DBUser
      
      
        =
      
      
        CONVERT
      
      (
      
        nvarchar
      
      (
      
        100
      
      ), 
      
        CURRENT_USER
      
      
        ), 


      
      
        27
      
      
        @LoginName
      
      
        =
      
      
        @data
      
      .value(
      
        '
      
      
        (/EVENT_INSTANCE/LoginName)[1]
      
      
        '
      
      , 
      
        '
      
      
        nvarchar(100)
      
      
        '
      
      
        ), 


      
      
        28
      
      
        @EventName
      
      
        =
      
      
        @data
      
      .value(
      
        '
      
      
        (/EVENT_INSTANCE/EventType)[1]
      
      
        '
      
      , 
      
        '
      
      
        nvarchar(100)
      
      
        '
      
      
        ), 


      
      
        29
      
      
        @ObjectName
      
      
        =
      
      
        @data
      
      .value(
      
        '
      
      
        (/EVENT_INSTANCE/ObjectName)[1]
      
      
        '
      
      , 
      
        '
      
      
        nvarchar(400)
      
      
        '
      
      
        ),


      
      
        30
      
      
        @TSQL
      
      
        =
      
      
        @data
      
      .value(
      
        '
      
      
        (/EVENT_INSTANCE/TSQLCommand)[1]
      
      
        '
      
      , 
      
        '
      
      
        nvarchar(max)
      
      
        '
      
      
        ) 


      
      
        31
      
      
        FROM
      
       master..sysprocesses 
      
        WHERE
      
       spid 
      
        =
      
      
        @@spid
      
      
        32
      
      
        33
      
      
        SELECT
      
      
        @Version
      
      
        =
      
      
        ISNULL
      
      (
      
        MAX
      
      (Version),
      
        0
      
      ) 
      
        +
      
      
        1
      
      
        FROM
      
       admin.dbo.ObjectLog 
      
        WHERE
      
       ObjectName 
      
        =
      
      
        @ObjectName
      
      
        AND
      
       DBName 
      
        =
      
      
        @DBName
      
      
        34
      
      
        35
      
      
        SELECT
      
      
        @ObjectType
      
      
        =
      
       type 
      
        FROM
      
       sys.objects 
      
        WHERE
      
       name 
      
        =
      
      
        @ObjectName
      
      
        36
      
      
        37
      
      
        SELECT
      
      
        @SeqNo
      
      
        =
      
      
        ISNULL
      
      (
      
        MAX
      
      (SeqNo),
      
        0
      
      )
      
        +
      
      
        1
      
      
        FROM
      
      
         admin.dbo.ObjectLog


      
      
        38
      
      
        39
      
      
        INSERT
      
      
         admin.dbo.ObjectLog(


      
      
        40
      
      
        [
      
      
        SeqNo
      
      
        ]
      
      
        41
      
             , 
      
        [
      
      
        DBName
      
      
        ]
      
      
        42
      
             , 
      
        [
      
      
        ObjectID
      
      
        ]
      
      
        43
      
             , 
      
        [
      
      
        ObjectName
      
      
        ]
      
      
        44
      
             , 
      
        [
      
      
        Version
      
      
        ]
      
      
        45
      
             , 
      
        [
      
      
        EventName
      
      
        ]
      
      
        46
      
             , 
      
        [
      
      
        DBUser
      
      
        ]
      
      
        47
      
             , 
      
        [
      
      
        HostName
      
      
        ]
      
      
        48
      
             , 
      
        [
      
      
        LoginName
      
      
        ]
      
      
        49
      
             , 
      
        [
      
      
        InDateTime
      
      
        ]
      
      
        50
      
             , 
      
        [
      
      
        TSQL
      
      
        ]
      
      
        51
      
             , 
      
        [
      
      
        CheckInChk
      
      
        ]
      
      
        52
      
             , 
      
        [
      
      
        InstanceName
      
      
        ]
      
      
        53
      
             , 
      
        [
      
      
        ObjectType
      
      
        ]
      
      
        54
      
      
        )


      
      
        55
      
      
        VALUES
      
      
        (


      
      
        56
      
      
        @SeqNo
      
      
        57
      
               , 
      
        @DBName
      
      
        58
      
               , 
      
        Object_ID
      
      (
      
        @ObjectName
      
      
        )


      
      
        59
      
               , 
      
        @ObjectName
      
      
        60
      
               , 
      
        @Version
      
      
        61
      
               , 
      
        @EventName
      
      
        62
      
               , 
      
        @DBUser
      
      
        63
      
               , 
      
        LTRIM
      
      (
      
        RTRIM
      
      (
      
        @HostName
      
      
        ))


      
      
        64
      
               , 
      
        @LoginName
      
      
        65
      
               , 
      
        GETDATE
      
      
        ()


      
      
        66
      
               , 
      
        @TSQL
      
      
        67
      
               , 
      
        '
      
      
        0
      
      
        '
      
      
        68
      
               , 
      
        @InstanceName
      
      
        69
      
               , 
      
        @ObjectType
      
      )
    

 

TRIGGER的使用(修改SP自动触发)


更多文章、技术交流、商务合作、联系博主

微信扫码或搜索:z360901061

微信扫一扫加我为好友

QQ号联系: 360901061

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描下面二维码支持博主2元、5元、10元、20元等您想捐的金额吧,狠狠点击下面给点支持吧,站长非常感激您!手机微信长按不能支付解决办法:请将微信支付二维码保存到相册,切换到微信,然后点击微信右上角扫一扫功能,选择支付二维码完成支付。

【本文对您有帮助就好】

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描上面二维码支持博主2元、5元、10元、自定义金额等您想捐的金额吧,站长会非常 感谢您的哦!!!

发表我的评论
最新评论 总共0条评论