it-swarm.dev

Como excluir arquivos no diretório via MS SQL Server

Estou tentando excluir um arquivo de um diretório dentro do windows usando a seguinte consulta,

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

Quando executo esse comando, ele fornece o seguinte erro:

Incorrect syntax near '+'.

No @deletefile variável eu tenho o nome do arquivo que eu tenho que excluir. O que eu fiz de errado aqui?

5
Nisal Malinda Livera

xp_cmdshell requer que uma cadeia literal seja passada como parâmetro. Você não pode construir um valor em tempo real.

Tente o seguinte:

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

Considere isso xp_cmdshell deve estar ativado, por exemplo, em desta forma .

13
Serge