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