SQL自动删除备份文件

DECLARE  @sql varchar(8000)  
--下面是删除15天前备份文件的处理  
set @sql='Del E:/Databasebackup/'  
@sql=@sql +rtrim(convert(varchar,getdate()-15,112))+'.bak'
Exec  master..xp_cmdshell   @sql  


DECLARE @DelFile Varchar(256)
set @DelFile='Del E:/Databasebackup/'
set @DelFile=@DelFile+'shya_DATA_'+Replace(convert(varchar(10),getdate()-28,120),'-','_')
Exec  master..xp_cmdshell  @DelFile


--判断文件是否存在

create table ##tb(a bit,b bit,c bit)

DECLARE @sql Varchar(256)
set @sql='E:/Databasebackup'+'shya_DATA_'+Replace(convert(varchar(10),getdate()-28,120),'-','_')
insert into ##tb
exec master..xp_fileexist @sql
--文件存在则删除
if exists(select 1 from ##tb where a=1)
begin
DECLARE @DelFile Varchar(256)
set @DelFile='Del E:/Databasebackup/'
set @DelFile=@DelFile+'shya_DATA_'+Replace(convert(varchar(10),getdate()-28,120),'-','_')
Exec  master..xp_cmdshell  @DelFile
end

drop table ##tb


---最新代码

--判断文件是否存在
create table ##tb(a bit,b bit,c bit)
DECLARE @DelFile Varchar(256)
set @DelFile='E:/Databasebackup/'
set @DelFile=@DelFile+'shya_DATA_'+Replace(convert(varchar(10),getdate()-28,120),'-','_')
insert into ##tb
exec master..xp_fileexist @DelFile
--文件存在则删除
if exists(select 1 from ##tb where a=1)
begin
DECLARE @Delsql Varchar(256)
set @Delsql='Del '+ @DelFile
Exec  master..xp_cmdshell  @Delsql
end

drop table ##tb

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值