我创建了一个Zip文件,但我无法使用以下命令将其删除。
xp_cmdshell 'rm "F:\EXIS\Reports\Individual.zip"'
当我能够真正看到该文件时,它会显示错误,说找不到文件。
我尝试使用xp_cmdshell 'del "F:\EXIS\Reports\Individual.zip"'
但是,这要求确认,我实际上无法输入。
请提出建议,
感谢。
答案 0 :(得分:1)
尝试以静默模式执行del
,如:
xp_cmdshell 'del /Q "F:\EXIS\Reports\Individual.zip"'
另外:如果SQL Server在另一台机器上运行,那么路径当然必须对该机器有效。
答案 1 :(得分:1)
在访问指定位置时,使用SQL Server进程的当前凭据找不到文件时,该消息更通用。
我怀疑这是权利问题,因此请确保SQL Server proecess有权删除该位置的文件。另一种建议是在该位置执行“目录”。
答案 2 :(得分:1)
- 更改服务器配置,例如: - 启用XP_CMDSHELL的脚本 - 允许更改高级选项。
EXEC sp_configure'显示高级选项',1 GO
- 更新高级选项的当前配置值。
RECONFIGURE GO
- 启用此功能。
EXEC sp_configure' xp_cmdshell',1 GO
- 更新此功能的当前配置值。
RECONFIGURE GO;
DECLARE @BackUpPath varchar(255) ,@sqlQuery varchar(255)
Set @BackUpPath='D:\All DB BackUp\TestDB.bak'
IF dbo.fn_FileExists(@BackUpPath)=1
BEGIN
SET @sqlQuery='DEL /Q "' + @BackUpPath + '"';
PRINT @sqlQuery
EXEC master..xp_cmdshell @sqlQuery
IF dbo.fn_FileExists(@BackUpPath)=0
BEGIN
PRINT 'File Deleted'
END
ELSE
BEGIN
PRINT 'File not Deleted'
END
END
如果@BackUpPath包含空格,您必须输入类似"您的路径 路径"