如何使用TSQL从目录中删除文件?

时间:2018-05-10 08:45:21

标签: sql-server database tsql

DECLARE @cmd VARCHAR(100) 
set @cmd= 'xp_cmdshell ''del "C:\root\sfd_devtracker\' + @deletefile + '"''';
EXEC (@cmd)

我曾尝试过上面的代码,但失败并出现错误必须声明scalare变量@deletefile。

任何人都可以知道这里有什么不对吗?

3 个答案:

答案 0 :(得分:1)

您需要声明变量@deletefile,就像声明上面的@cmd

一样

DECLARE @deletefile varchar(20)。如果文件名太长,可以使用varchar(100)。

在@deletefile变量中设置要删除的文件名,然后运行查询。

SET @ deletefile ='YourFileName'。总的来说,它应该像下面

DECLARE @cmd VARCHAR(100)
DECLARE @deletefile VARCHAR(20)
set @deletefile='YourFileName' 
set @cmd= 'xp_cmdshell ''del "C:\root\sfd_devtracker\' + @deletefile + '"''';
EXEC (@cmd)

答案 1 :(得分:0)

正如错误消息所示,您尚未声明变量@deletefile,或将其设置在任何位置。

你需要做

DECLARE @deletefile NVARCHAR(255) = 'FileNameHere'

或类似的

答案 2 :(得分:0)

您确定已声明并设置变量" @ deletefile"指定要删除的文件名?