数据库开发

网络新概念,云计算、大数据、O2O、电商。。。。

实现sqlserver数据库存储过程中自动备份数据库,并且通过winrar压缩文件,并且自动删除历史备份数据

use master
declare @fdir varchar(30) --定义备份的目录名称  
declare @fdbname varchar(50) --定义数据库名称
declare @fdatestr varchar(50)
set @fdir='c:\backup\'
set @fdbname='k3xx'
set @fdatestr=replace(replace(replace(CONVERT(varchar, getdate(), 120 ),'-',''),' ',''),':','')

declare @filename varchar(200)
set @filename=@fdir+@fdbname+@fdatestr+'.bak'  --设置备份文件的路径和文件名
print @filename
backup database @fdbname to disk=@filename with NOINIT,NOUNLOAD,NAME='backup',NOSKIP,STATS=10,NOFORMAT  --执行备份



declare @file varchar(200)
set @file='c:\winrar\winrar.exe a -ep -df '+@fdir+@fdbname+@fdatestr+'.rar '+@filename  --将压缩备份文件并删除源文件的winrar命令行命令
exec master..xp_cmdshell @file  --执行命令

--删除文件超过30天的备份
declare @delfile varchar(200)
set @delfile='FORFILES /p '+@fdir+' /s /m *.rar /d -30 /c "CMD /C del /Q /F @FILE"'
EXEC xp_cmdshell @delfile

sqlserver1.jpg