declare @delFile varchar(100)
declare @cmdDel varchar(200)
set @delFile = @databasename(你数据库的名字)+convert(varchar(10),dateadd(dd,-7,getdate()),120)+'.bak'set @cmdDel='del '+ @LocalPath(文件存放目录) +@delFile
exec master..xp_cmdshell @cmdDel
这样调用xp_cmdshell 直接运行windows指令就可以了删除了,只是个例子,你自己再看看改一下,以便适用你的。

解决方案 »

  1.   

    调用xp_cmdshell删除就行了:declare @sql varchar(8000)
    set @sql='backup database mis  to disk=''d:\databack\mis\mis'
    +rtrim(convert(varchar,getdate(),112))+'.bak'''
    exec(@sql)--下面是删除15天前备份文件的处理
    set @sql='del d:\databack\mis\mis'
    +rtrim(convert(varchar,getdate()-15,112))+'.bak'''
    exec master..xp_cmdshell @sql
      

  2.   

    当然,要求你具有足够权限,可以执行xp_cmdshell才行.
      

  3.   

    我是想刪除日期大於 date - 15 的文件,可能不止一個文件, 這些指令是不是加在備份數據庫的後面就可以呢,還是要另外建一個JOB呢,能否給出更具體一點的代碼
      

  4.   

    加在备份后面也可以,另建一个job也可以.
    如果不止一个文件,就多次调用啊:--例子:
    --删除15天前备份文件的处理
    set @sql='del d:\databack\mis\mis'
    +rtrim(convert(varchar,getdate()-15,112))+'.bak'''
    exec master..xp_cmdshell @sql--删除其他文件,就是del命令的处理,只不过用xp_cmdshell调用而已
    set @sql='del d:\databack\mis\mis2003*.bak'
      

  5.   

    可以使用bat 执行的 例如: a.bata.bat 内容:(delete 15 天以前的備份文件
    isql -U sa -P -i c:\a.sql)这个思路就ok 了