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='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的计划任务实现。