数据库自动备份和自动删除以前的备份

DECLARE @delFileName NVARCHAR(200)
DECLARE  @cmd VARCHAR(50)
DECLARE  @saveDateNum INT
SET @saveDateNum=-60
WHILE @saveDateNum<-30
 BEGIN
  SET @delFileName = 'E:/back/Database/dbName_' + convert(varchar(10),dateadd(day,@saveDateNum,getdate()),112) + '.bak'  
  SET @cmd = 'del '+ @delFileName
  EXEC master.dbo.xp_cmdshell @cmd
  SET @saveDateNum=@saveDateNum+1
 END
go

DECLARE @fileName NVARCHAR(200)
SET @fileName = 'E:/back/Database/dbName_' + convert(NVARCHAR(19),getdate(),112) + '.bak'
BACKUP DATABASE [dbName] TO DISK = @fileName WITH NOINIT, NOUNLOAD, NOSKIP, STATS = 10, NOFORMAT

 

====================

因为可能是每周备份,30天以前del,30-60删除

可根据需要修改以上数据

 


SQL2005 开启XP_CMDSHELL

EXEC sp_configure 'show advanced options', 1;RECONFIGURE;EXEC sp_configure 'xp_cmdshell', 1;RECONFIGURE;--
关闭一样.只是将上面的后面的那个"1"改成"0"就可以了.


;EXEC sp_configure 'show advanced options', 1;RECONFIGURE;EXEC sp_configure 'xp_cmdshell', 0;RECONFIGURE;--

 

为安全可以换成

declare @d Nvarchar(64);
set @d = convert(varchar,dateadd(day,-5,getdate()),120);
EXECUTE master.dbo.xp_delete_file 0,N'D:/databack/GFSM',N'bak',@d;
EXECUTE master.dbo.xp_delete_file 0,N'D:/databack/GFSM_KEY',N'bak',@d

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值