zoukankan      html  css  js  c++  java
  • TRIGGER的使用(修改SP自动触发)

     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)
  • 相关阅读:
    Thinkphp6笔记十八:默认分页2
    Thinkphp6笔记十八:默认分页1
    Thinkphp6笔记十七:模板标签使用
    Thinkphp6笔记十六:IP黑名单
    Thinkphp6笔记十五:模板路径自定义配置
    Thinkphp6笔记十四:Redis配置
    Thinkphp6笔记十三:验证器(模型验证)
    Thinkphp6笔记十三:验证器(场景验证)
    Thinkphp6笔记十三:验证器(控制器验证)
    Thinkphp6笔记十二:多数据库配置
  • 原文地址:https://www.cnblogs.com/mybky/p/3798639.html
Copyright © 2011-2022 走看看