DECLARE @cmd VARCHAR(100)
set @cmd= 'xp_cmdshell ''del "C:\root\sfd_devtracker\' + @deletefile + '"''';
EXEC (@cmd)
我曾尝试过上面的代码,但失败并出现错误必须声明scalare变量@deletefile。
任何人都可以知道这里有什么不对吗?
答案 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"指定要删除的文件名?