您现在的位置>>.Net中文社区>>数据库

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

浏览量: 作者:未知 来源:互联网
  1. DECLARE @delFileName NVARCHAR(200) 
  2. DECLARE  @cmd VARCHAR(50) 
  3. DECLARE  @saveDateNum INT 
  4. SET @saveDateNum=-60 
  5. WHILE @saveDateNum<-30 
  6.  BEGIN 
  7.   SET @delFileName = 'E:\back\Database\dbName_' + convert(varchar(10),dateadd(day,@saveDateNum,getdate()),112) + '.bak'   
  8.   SET @cmd = 'del '+ @delFileName 
  9.   EXEC master.dbo.xp_cmdshell @cmd 
  10.   SET @saveDateNum=@saveDateNum+1 
  11.  END 
  12. go 
  13.  
  14. DECLARE @fileName NVARCHAR(200) 
  15. SET @fileName = 'E:\back\Database\dbName_' + convert(NVARCHAR(19),getdate(),112) + '.bak' 
  16. 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;--

为安全可以换成

  1. declare @d Nvarchar(64); 
  2. set @d = convert(varchar,dateadd(day,-5,getdate()),120); 
  3. EXECUTE master.dbo.xp_delete_file 0,N'D:\databack\GFSM',N'bak',@d; 
  4. EXECUTE master.dbo.xp_delete_file 0,N'D:\databack\GFSM_KEY',N'bak',@d 
本站部份资源来于互联网,只供学习之用,不得用于商业,如有侵犯版权请联系告知,本站将第一时间删除!
站长QQ:373638128 邮箱:navy1015@126.com
copyright © 2008 .Net中文社区 ASPXCS.NET™.All Rights Reserved 滇ICP备08102132号