Usei o Assistente de plano de manutenção para criar um plano. Quando executo o plano, a "Tarefa de limpeza de manutenção" falha com esta mensagem de erro:
A execução da consulta "EXECUTE master.dbo.xp_delete_file 0,N'',N'',N'2016..." falhou com o seguinte erro: "Erro ao executar procedimento armazenado estendido: Parâmetro inválido". Possíveis motivos de falha: Problemas com a consulta, propriedade "ResultSet" não definida corretamente, parâmetros não definidos corretamente ou conexão não estabelecida corretamente.
O T-SQL gerado é este (de acordo com o Log File Viewer):
EXECUTE master.dbo.xp_delete_file 0,N'''',N'''',N''2016-01-25T13:50:30''
GO
Observe que todas as aspas simples são duplicadas.
Existe um bug no visualizador de log ou o assistente está realmente gerando um código T-SQL inválido?
Acabei de perceber que recebo "Erro ao executar o procedimento armazenado estendido: parâmetro inválido" se eu remover aspas falsas e executar a consulta manualmente:
EXECUTE master.dbo.xp_delete_file 0,N'',N'',N'2016-01-25T13:50:30'
GO
O
master.dbo.xp_delete_file
procedimento parece não estar documentado e também parece ser um procedimento binário (sp_helptext 'master.dbo.xp_delete_file'
printsxpstar.dll
), portanto não podemos descobrir os argumentos do código-fonte. Fontes não oficiais sugerem que estes são seus argumentos:Em outras palavras, o comando não possui o caminho real a ser removido. Se formos a "Planos de Gestão/Manutenção", clique com o botão direito do rato no nosso plano e seleccione "Modificar" podemos editar as tarefas individuais. Nesse caso, faltava o caminho "Tarefa de limpeza de manutenção" (o assistente parece não validar se você inseriu um). Deve ficar assim:
Tópico antigo que eu conheço, mas caso isso ajude alguém ... Eu definitivamente digitei meu caminho manualmente porque só tenho uma unidade dedicada "f:\" no meu caso. Quando li isso e olhei para o meu trabalho, também estava vazio. Desta vez, selecionei-o através do botão ... e corrigi o problema.