SQL SERVER2005自动删除过期备份

2024-12-26 17:29:44
推荐回答(2个)
回答1:

getdate()-3,这个用法错误,应该写成dateadd(dd,-3,getdate())

补充,bak后面多了一个单引号

set @sql='del d:\databack\tianyuan'
+rtrim(convert(varchar,dateadd(dd,-3,getdate()) ,112))+'.bak'
exec master..xp_cmdshell @sql

看你备份语句里又有单引号,晕了,请确认文件扩展名是.bak还是.bak'

回答2:

稍微修改下,
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