mssql sqlserver 自动备份存储过程的方法分享
程序员文章站
2023-01-29 16:29:26
转自:http://www.maomao365.com/?p=7847摘要: 为了更好的记录数据库中存储过程脚本的变化情况,下文采用数据库触发器来自动记载每次“存储过程”的变化(新增或修改),如下所示: 实验环境:sql server 2008 R2
处理方法:1 .master数据库下 ......
处理方法:1 .master数据库下 ......
转自: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
推荐阅读
-
mssql 高效的分页存储过程分享
-
mssql 单引号插入到sqlserver的方法分享
-
分享:在存储过程中使用另一个存储过程返回的查询结果集的方法
-
SQL SERVER备份数据库存储过程的方法
-
mssql sqlserver 表增加列后,视图不会自动更新相关列的两种解决方法分享
-
sqlserver 复制表 复制数据库存储过程的方法
-
mssql server 存储过程里,bulk insert table from '路径+文件',路径固定,文件名不固定的实现方法
-
SqlServer2005 自动备份并存储另一电脑上的存储过程函数
-
MSSQL自动重建出现碎片的索引的方法分享
-
查询Sqlserver数据库死锁的一个存储过程分享