• mssql sqlserver 自动备份存储过程的方法分享


    转自:http://www.maomao365.com/?p=7847
    摘要:
    为了更好的记录数据库中存储过程脚本的变化情况,下文采用数据库触发器来自动记载每次“存储过程”的变化(新增或修改),如下所示:
    实验环境:sql server 2008 R2
    <hr />
    处理方法:
    1 .master数据库下建立数据表:
    procBackTableInfo,包含列
     

    CREATE TABLE [procBackTableInfo](
    [keyId [int] IDENTITY(1,1) NOT NULL PRIMARY KEY ,--编号
    [dbName] sysname,--数据库名
    [procSqlInfo] [ntext] NOT NULL,--存储过程的SQL
    [ProcName] sysname,--存储过程名字
    [writeDate] [datetime] default getdate(),--修改时间
    [writeUser] sysname null --写入人
    )


    2. 建立数据库触发器,tr_procChange
     

    create trigger [tr_procChange]
    on all server 
    for CREATE_PROCEDURE,ALTER_PROCEDURE
    
    as 
    --获取事件数据
    DECLARE @data XML
    SET @data = EVENTDATA()
    
    declare @dbName sysname
    declare @procName sysname
    declare @procSqlInfo nvarchar(max)
    
    --获取新建存储过程的数据库名
    SET @dbName = @data.value('(/EVENT_INSTANCE/DatabaseName)[1]', 'sysname')
    --存储过程的名字
    set @procName = @data.value('(/EVENT_INSTANCE/ObjectName)[1]', 'sysname')
    --获取新建存储过程的内容
    set @procSqlInfo = @data.value('(/EVENT_INSTANCE/TSQLCommand/CommandText)[1]', 'sysname')
    
    --将数据库名、存储过程名以及存储过程内容插入ProcSqlTable表
    insert into [master].[dbo].[procBackTableInfo]([dbName],[ProcName],[ProcSQL]) 
    values(@dbName,@procName,@procSqlInfo)
    
    GO
    
    ENABLE TRIGGER [tr_procChange] ON ALL SERVER
  • 相关阅读:
    计蒜客 跳跃游戏2
    计蒜客 跳跃游戏
    2018 计蒜之道-初赛 第一场 A-百度无人车
    poj 3625 (最小生成树算法)
    poj 3623(贪心)
    poj2386(dfs搜索水题)
    poj 2761 主席树的应用(查询区间第k小值)
    POJ 2456 编程技巧之------二分查找思想的巧妙应用
    POJ 1995(有关快速幂运算的一道水题)
    1441:【例题2】生日蛋糕
  • 原文地址:https://www.cnblogs.com/lairui1232000/p/10017680.html
Copyright © 2020-2023  润新知