如何通过MS SQL Server删除目录中的文件

Nis*_*era 5 sql sql-server xp-cmdshell

我试图使用以下查询从Windows内的目录中删除文件,

exec xp_cmdshell 'del "C:\root\sfd_devtracker\'+@deletefile + '"';
Run Code Online (Sandbox Code Playgroud)

当我执行此命令时,它会给出以下错误,

Incorrect syntax near '+'.
Run Code Online (Sandbox Code Playgroud)

@deletefile变量中我有我必须删除的文件名.我在这里做错了什么?

Ser*_*rge 12

xp_cmdshell要求将文字字符串作为参数传递.您无法动态构建值.

试试这个:

DECLARE @cmd NVARCHAR(MAX) = 
'xp_cmdshell ''del "C:\root\sfd_devtracker\' + @deletefile + '"''';
EXEC (@cmd)
Run Code Online (Sandbox Code Playgroud)

考虑xp_cmdshell必须启用,例如以这种方式.