次のクエリを使用して、Windows内のディレクトリからファイルを削除しようとしています。
exec xp_cmdshell 'del "C:\root\sfd_devtracker\'+@deletefile + '"';
このコマンドを実行すると、次のエラーが発生します。
Incorrect syntax near '+'.
@deletefile
変数削除する必要があるファイル名を持っています。ここで何が間違っていますか?
xp_cmdshell では、リテラル文字列をパラメーターとして渡す必要があります。その場で値を構築することはできません。
これを試して:
DECLARE @cmd NVARCHAR(MAX) =
'xp_cmdshell ''del "C:\root\sfd_devtracker\' + @deletefile + '"''';
EXEC (@cmd)
xp_cmdshell
は、たとえば this way で有効にする必要があります。