• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    sql2005可实时监测数据库版本控制SQL的触发器
    复制代码 代码如下:

    /******
    对象: DdlTrigger [Trig_DBVersionController]
    脚本日期: 09/05/2008 15:50:16
    作用: 数据库版本控制
    ******/
    IF EXISTS (SELECT * FROM sys.triggers WHERE name = N'Trig_DBVersionController' AND parent_class=0)
    DROP TRIGGER [Trig_DBVersionController] ON DATABASE
    GO

    CREATE TRIGGER [Trig_DBVersionController]
    ON DATABASE
    FOR CREATE_TABLE, ALTER_TABLE, DROP_TABLE,
    CREATE_FUNCTION, ALTER_FUNCTION, DROP_FUNCTION,
    CREATE_INDEX, ALTER_INDEX, DROP_INDEX,
    CREATE_PROCEDURE, ALTER_PROCEDURE, DROP_PROCEDURE,
    CREATE_TRIGGER, ALTER_TRIGGER, DROP_TRIGGER,
    CREATE_VIEW, ALTER_VIEW, DROP_VIEW
    AS
    SET NOCOUNT ON
    DECLARE @data AS xml
    DECLARE @clientUser AS nvarchar(128)
    DECLARE @spid AS nvarchar(128)
    DECLARE @serverName AS nvarchar(128)
    DECLARE @dbName AS nvarchar(128)
    DECLARE @dbid AS int
    DECLARE @objName AS nvarchar(512)

    SELECT @data =EVENTDATA()
    SELECT @spid = @data.value('(/EVENT_INSTANCE/SPID)[1]','nvarchar(128)')
    SELECT @serverName = @data.value('(/EVENT_INSTANCE/ServerName)[1]','nvarchar(256)')
    SELECT @dbName = @data.value('(/EVENT_INSTANCE/DatabaseName)[1]','nvarchar(128)')
    SELECT @objName = @data.value('(/EVENT_INSTANCE/ObjectName)[1]','nvarchar(128)')

    SELECT @dbid = dbid FROM sys.sysdatabases
    WHERE name = @dbName

    --获取客户机的机器名

    SELECT @clientUser=hostname FROM master..sysprocesses WHERE spid=@spid
    -- add version record
    INSERT INTO DBController.dbo.tbl_version_details
    (post_computer_name, sys_dbid, uid, [schema],
    PostTime, EventType, ObjectType, ObjectName, CommandText, Remark)
    VALUES
    (@clientUser, @dbid,
    @data.value('(/EVENT_INSTANCE/LoginName)[1]','nvarchar(256)'),
    @data.value('(/EVENT_INSTANCE/UserName)[1]','nvarchar(256)'),
    @data.value('(/EVENT_INSTANCE/PostTime)[1]','datetime'),
    @data.value('(/EVENT_INSTANCE/EventType)[1]','nvarchar(128)'),
    @data.value('(/EVENT_INSTANCE/ObjectType)[1]','nvarchar(128)'),
    @objName,
    @data.value('(/EVENT_INSTANCE/TSQLCommand/CommandText)[1]','nvarchar(max)'),
    ''
    )

    GO
    SET ANSI_NULLS OFF
    GO
    SET QUOTED_IDENTIFIER OFF
    GO
    ENABLE TRIGGER [Trig_DBVersionController] ON DATABASE
    GO

    上面是trigger

    下面是存储的库和表结构
    提供图片

    上面图片可以清淅看到表结构
    大家写出表的SQL出来
    您可能感兴趣的文章:
    • SQLServer 触发器 数据库进行数据备份
    • 数据库触发器(Trigger)的一点使用心得
    • 用sql脚本创建sqlserver数据库触发器范例语句
    • 数据库触发器DB2和SqlServer有哪些区别
    上一篇:SQL嵌套查询总结
    下一篇:sql 中将日期中分秒化为零的语句
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    sql2005可实时监测数据库版本控制SQL的触发器 sql2005,可,实时,监测,数据库,