Eu percebi isso esta manhã. O problema estava com a função DATEADD
. Quando está dentro de uma instrução EXECUTE (que é como uma tarefa do SQL Server Agent a executaria), o intervalo deve ser uma datapart específica (dia), não um dos tokens ("dd").
Então, esta função: DATEDIFF(dd,DateDisabled,GETDATE())
Necessário para ser mais assim: DATEDIFF(day,DateDisabled,GETDATE())
Houve várias chamadas para essa função, mas você teve a ideia.
Veja como eu descobri: eu tinha o SQL Server Management Studio script a tarefa como um script CREATE em um novo documento editor de consulta. Uma vez que encontrei o passo que estava tentando executar, copiei. Os pedaços suculentos são parecidos com isto:
@command = N'[my query]'
Copiei esse grupo de linhas para uma nova janela e adicionei um DECLARE para a variável de comando.
Por fim, usei EXECUTE (@command) AS USER = '[the user the job runs as]'
para ver o que aconteceria. Executando a consulta dessa maneira, recebi muito mensagens de erro mais detalhadas do que eu no log do trabalho.
Eu o corrigi agora e o trabalho funciona perfeitamente.