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

原文地址:https://www.cnblogs.com/lairui1232000/p/10017680.html

时间: 2024-11-09 04:42:59

mssql sqlserver 自动备份存储过程的方法分享的相关文章

mssql sqlserver 取消数值四舍五入的方法分享

摘要: 下文讲述使用round sql函数,对数值型数据进行舍入操作 实验环境:sqlserver 2008 转自: http://www.maomao365.com/?p=6454 最近接到用户需求,需对数值型数据,无论后面数据多少,直接进行舍入操作,左思右想,终于发现了round函数可以满足此操作. -------------------------------------------------- round函数舍入特性介绍: round语法介绍: round(数据表达式,长度[,操作方式

mssql sqlserver 判断字符串大小写的方法分享

摘要:下文讲述使用sql脚本的方法判断字符串为大小写的方法分享,如下所示 实验环境:sqlserver 2008 R2 实现思路: 将字符串转换为大写或小写然后转换为二进制编码, 然后和源字符串做对比. /* 例:字符串大小写判断方法分享 */ declare @str varchar(100) set @str ='www.maomao365.com' -------------------------------------------------------------- if conve

SqlServer自动备份、自动压缩、自动删除旧备份

准备工具: SqlServer2008 WinRar 1.给SqlServer设置维护计划定时备份 这个操作比较简单,按向导新增维护计划即可. 2.自动压缩脚本 c:\Progra~2\WinRar\winRar.exe a D:\bak\database_buckup_%date:~0,4%_%date:~5,2%_%date:~8,2% d:\bak\database_*%date:~0,4%_%date:~5,2%_%date:~8,2%_*.bak 备份文件的格式是:database_b

MSSQL每日自动备份

近期遇到一个很棘手的问题,sql勿删了数据.各种着急毫无办法,最后还是找了专业人士恢复了费用可不小.为了避免此问题再次发生数据库得备份才行,废话不多说: 1.管理 -- 维护计划 --新建计划向导 2.下一步 3.取个名字 -- 点击更改 4.填选好选项 -- 确定 5.回到之前的窗口 -- 下一步 6.选择每日要执行的选项 --下一步 7.调整任务执行顺序 8.选择一个要备份的数据库以及备份的路径 -- 下一步 9.备份事务日志(和上边一样的操作)--下一步 10.(数据库检查完整性)选择数据

SQLServer自动备份和自动删除过期文件

以下为转载的文章: 点击下一步: 自定义名称和说明,点击更改: 点击确定,下一步 1.备份: 选择备份,下一步,再下一步,选择需要备份的数据库: 选择备份文件存放的路径: 点击下一步,选择系统产生的报告存放的位置: 最后点击下一步,点击完成. 看到这个表示任务已经指定完毕: 2.删除备份文件: 下一步,设置报告存放位置,完成.

Sqlserver自动备份bat

1.bat文件 @echo off echo 删除30天前的备分文件和日志 forfiles /p "D:\MSSQLBACKUP\bak" /m *.bak /d -30 /c "cmd /c del @path" set path=%path%;C:\Program Files (x86)\Microsoft SQL Server\80\Tools\Binn echo 数据库备份开始 osql.exe -S 127.0.0.1(数据库地址) -U sa(用户名)

MS SQL Server 定时任务实现自动备份

SQL Server Express 版本是没有SQL 代理服务的,从而导致不能使用SQL Server的定时自动备份功能.真心感觉这就是一个坑,虽然Express是学习的版本,但是精简的也太多了.另外一点不能忍受的是居然没有SQL Profile 监控执行语句数据功能,[手动cry] 好了,来说一下如果你使用了Express,如何进行SQL Server 的自动备份吧: ①方法就是:SQL备份数据库语句  +  windows 定时任务计划 ②目录结构为: ③DBBacUp.bat  备份的脚

mssql sqlserver 表增加列后,视图不会自动更新相关列的两种解决方法分享

摘要: 今天对物理数据表,进行增加列操作后,程序一直显示无法找到相应列,通过仔细比对发现,视图中无相应列更新,下文将具体的解决方法分享如下: 例: create view vw_test as select * from tableName go ---当我们在表tableName中新增列之,再次查询vw_test ---依然未发现相应列的存在. ----解决方法1:删除原视图,重新创建视图 drop view vw_test go create view vw_test as select *

mssql sqlserver 使用sql脚本输出交替不同的背景色的html信息的方法分享

转自:http://www.maomao365.com/?p=6679 摘要: 下文将分享使用sql脚本输出交替变换的不同背景颜色的sql脚本的方法分享,如下所示: 实验环境:sqlserver 2008 R2 例: 下文 首先采用 over() row_number 函数生成的行编号, 然后对每行进行颜色变化操作,生成不同的背景色,如下所示: create table test(keyId int,info varchar(30)) go insert into test(keyId,info