web-dev-qa-db-fra.com

Comment supprimer des fichiers du répertoire via MS SQL Server

J'essaie de supprimer un fichier d'un répertoire à l'intérieur de Windows en utilisant la requête suivante,

exec xp_cmdshell 'del "C:\root\sfd_devtracker\'+@deletefile + '"';

Lorsque j'exécute cette commande, elle donne l'erreur suivante,

Incorrect syntax near '+'.

Dans @deletefile variable j'ai le nom de fichier que je dois supprimer. Qu'est-ce que j'ai fait de mal ici?

5

xp_cmdshell nécessite qu'une chaîne littérale soit passée en paramètre. Vous ne pouvez pas construire une valeur à la volée.

Essaye ça:

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

Considérez que xp_cmdshell doit être activé, par exemple dans de cette façon .

13
Serge