通过SQL删除特定备份文件

Nun*_*uno 6 sql-server backup

我一直在研究如何通过SQL查询删除特定的备份文件,但我只找到有关"删除早于日期的备份"的结果.那不是我想要的.我想保留旧备份,但我希望能够通过其ID删除特定备份.

我可以轻松地从msdb表中删除条目及其给定备份的恢复历史记录,但我希望能够通过SQL查询删除文件(我知道它们的完整路径,因为它存储在数据库中),这样他们就不会在磁盘中浪费空间.

过程"xp_delete_file"似乎不允许删除特定文件.

我假设如果有删除旧文件的过程,应该有一些方法来删除特定文件.请不要担心这里的安全.

小智 22

可能会老,但可能会帮助别人.xp_delete_file 可用于删除特定的备份文件.请尝试以下代码:

EXECUTE master.dbo.xp_delete_file 0,N'c:\backup\backup1.bak'
Run Code Online (Sandbox Code Playgroud)

  • 7年后,我将接受的答案从我自己的下面改为这个。不确定这在 SQL Server 2008 R2 中是否可用,但在这一点上,我认为这是值得接受的答案。非常感谢! (2认同)

Ale*_*xey 5

--Define a backup device and physical name. 
USE AdventureWorks2012 ;
GO
EXEC sp_addumpdevice 'disk', 'mybackupdisk', 'c:\backup\backup1.bak' ;
GO
--Delete the backup device and the physical name.
USE AdventureWorks2012 ;
GO
EXEC sp_dropdevice ' mybackupdisk ', 'delfile' ;
GO
Run Code Online (Sandbox Code Playgroud)

http://technet.microsoft.com/en-us/library/ms188711.aspx