当前位置: 首页 > 面试题库 >

SQL Server xp_delete_file不删除文件

丁阳炎
2023-03-14
问题内容

我正在尝试编写一些SQL,该SQL将删除早于7天的’.7z’类型的文件。

这是我无法正常工作的结果:

DECLARE @DateString CHAR(8)
SET @DateString = CONVERT(CHAR(8), DATEADD(d, -7, GETDATE()), 1)
EXECUTE master.dbo.xp_delete_file 0, 
                  N'e:\Database Backups',N'7z', @DateString, 1

我还尝试将“ 1”的结尾更改为“ 0”。

这将返回“成功”,但文件不会被删除。

我正在使用带有SP2的SQL Server 2005 Standard


问题答案:

遇到类似的问题,找到了各种答案。这是我发现的。

您无法使用xp_delete_file删除7z文件。这是未记录的扩展存储过程,是SQL
2000的保留过程。它检查要删除的文件的第一行,以验证它是SQL备份文件还是SQL报告文件。它不会根据文件扩展名进行检查。据我了解,它的预期用途是在维护计划中清理旧备份和计划报告。

这是一个基于Tomalak链接的示例,该链接删除了7天以上的备份文件。让人们大跌眼镜的是’sys’模式,文件夹路径中的尾部斜杠以及文件扩展名中没有要查找的点。运行SQL
Server的用户还需要对该文件夹具有删除权限。

DECLARE @DeleteDate datetime
SET @DeleteDate = DateAdd(day, -7, GetDate())

EXECUTE master.sys.xp_delete_file
0, -- FileTypeSelected (0 = FileBackup, 1 = FileReport)
N'D:\SQLbackups\', -- folder path (trailing slash)
N'bak', -- file extension which needs to be deleted (no dot)
@DeleteDate, -- date prior which to delete
1 -- subfolder flag (1 = include files in first subfolder level, 0 = not)

请注意,xp_delete_file在SP2中已损坏,无法在报表文件上使用。在
[http://support.microsoft.com/kb/938085]
上有针对它的修复程序。我尚未使用SP3对其进行测试。

由于未记录,因此xp_delete_file可能会消失或在SQL Server的未来版本中更改。许多站点建议使用Shell脚本来执行删除操作。



 类似资料:
  • 问题内容: 尝试删除不为空的文件夹时,出现“访问被拒绝”错误。我尝试使用以下命令:。 删除/删除不为空的文件夹/目录的最有效方法是什么? 问题答案: 标准库参考:shutil.rmtree。 根据设计,在包含只读文件的文件夹树上失败。如果要删除该文件夹而不管它是否包含只读文件,请使用

  • 问题内容: 我刚刚在android应用程序中编写了一个函数,该函数使用Java中的标准“文件”类删除文件。即: 尽管上面的过程很简单,但我一直想知道通过“ ContentResolver”执行该操作是否有任何好处。任何意见,将不胜感激。 干杯, 杰瑞德 ------------------------------------------编辑------- 这是通过Content Resolver删

  • 我有文件在上传/project ect1/更新。 问题是,只删除更新中的文件。我想删除文件夹上载中的目录。。。也就是说,文件夹名“project1”和“update”在更新中的文件被删除后也会被删除。你能帮我找出错误吗?? 这个编码发出警告 警告:clocdirer()期望参数1为资源, 警告:rmdir(update)[function.rmdir]:没有这样的文件或目录。。 但是在目录上传中,

  • 我想镜像两个文件夹,但排除某些文件类型(例如js文件)。我可以用 /XF选项来做到这一点。 我遇到的问题是,如果目标文件夹中有一个带有js文件的Foo文件夹,但源文件夹中没有Foo文件夹,那么下面的robocopy命令将删除目标端的Foo文件夹以及其中的js文件。 机器人复制。exe d:\Source d:\Destination/E/PURGE/XF*。js/COPYALL/FFT 我想要的是

  • 问题内容: 如何使用node.js删除文件? http://nodejs.org/api/fs.html#fs_fs_rename_oldpath_newpath_callback 我没有看到删除命令? 问题答案: 我想你要用。 有关更多信息,请参见此处。

  • 通过指定文档的 /index/type/id 路径可以删除文档: $params = [ 'index' => 'my_index', 'type' => 'my_type', 'id' => 'my_id' ]; // Delete doc at /my_index/my_type/my_id $response = $client->delete($params);