我用SQL企业管理器的作业来调度每两小时自动备份一次数据库,我在作业步骤里的命令是这样的:
declare @htwb varchar(100)
set @htwb='e:\sjk\sj'+convert(char(8),getdate(),112)+replace(convert(char(6),getdate(),108),':','')+'.bak'
backup database htwb to disk=@htwb with init
这样它会每两小时自动生成一个带时间名的备份文件如:sj200706051800.bak、sj200706052000.bak、sj200706052200.bak、sj200706060000.bak等,我想在with init 后面添加一条让它自动删除6小时前的备份文件,请问怎么写?本菜鸟水平有限,麻烦大侠尽量写明白点,无限感谢!!!
declare @htwb varchar(100)
set @htwb='e:\sjk\sj'+convert(char(8),getdate(),112)+replace(convert(char(6),getdate(),108),':','')+'.bak'
backup database htwb to disk=@htwb with init
这样它会每两小时自动生成一个带时间名的备份文件如:sj200706051800.bak、sj200706052000.bak、sj200706052200.bak、sj200706060000.bak等,我想在with init 后面添加一条让它自动删除6小时前的备份文件,请问怎么写?本菜鸟水平有限,麻烦大侠尽量写明白点,无限感谢!!!
declare @sql2 varchar(100)
set @sql1 = 'e:\sjk\sj'+convert(char(8),getdate(),112)+replace(convert(char(6),getdate(),108),':','')+'.bak'
set @sql2 = 'del e:\sjk\sj'+convert(char(8),getdate(),112)+replace(convert(char(6),dateadd(hh,-6,getdate()),108),':','')+'.bak'
backup database test to disk = @sql1 with init exec xp_cmdshell @sql2
declare @sql2 varchar(100)
set @sql1 = 'e:\sjk\sj'+convert(char(8),getdate(),112)+replace(convert(char(6),getdate(),108),':','')+'.bak'
set @sql2 = 'del e:\sjk\sj'+convert(char(8),getdate(),112)+replace(convert(char(6),dateadd(hh,-6,getdate()),108),':','')+'.bak'
backup database test to disk = @sql1 with init exec xp_cmdshell @sql2
exec (@sql2)