SQL SERVER2005自动删除过期备份

来源:百度知道 编辑:UC知道 时间:2024/06/25 20:47:14
我在SQL server2005作业里面要设置自动备份,同时对过期的备份删除 ,该如何写语句 自动备份的语句知道写 但是自动删除过期备份的语句不知道写
请教高手

我试着用如下语句在查询里运行 结果能够自动备份但是不能自动删除过期备份
declare @sql varchar(100)
set @sql='backup database tianyuan to disk=''d:\databack\tianyuan'
+rtrim(convert(varchar,getdate(),112))+'.bak'''
exec(@sql)
--删除3天前备份文件
set @sql='del d:\databack\tianyuan'
+rtrim(convert(varchar,getdate()-3,112))+'.bak'''
exec master..xp_cmdshell @sql

在消息里提示output如下:
找不到d:\databack\tianyuan20091123.bak'
null

请问该如何设置自动删除过期备份的语句呢

稍微修改下,

declare @sql varchar(100)
set @sql='d:\databack\tianyuan'
+rtrim(convert(varchar,getdate(),112))+'.bak'
backup database tianyuan to disk=@sql
--删除3天前备份文件
set @sql='del d:\databack\tianyuan'
+rtrim(convert(varchar,getdate()-3,112))+'.bak'
exec master..xp_cmdshell @sql

刚没注意看,核对一下文件扩展名,一个是.bak',一个是.bak,前者多了一个单引号.

直接利用Windows的计划任务实现。