Eu tenho um pacote que estou atualizando. O pacote é executado por um job do Job Agent. Depois de excluir o pacote e implantar a nova versão, executo um script que executa todas as instruções [create_environment], [create_environment_reference], [create_environment_variable] e [set_object_parameter_value] necessárias.
No entanto, quando inicio o trabalho, ele falha com a seguinte mensagem de erro (onde "n" é um número que não aparece em nenhuma das tabelas ou visualizações relevantes do SSISDB como um id de qualquer tipo):
A referência de ambiente n não está associada ao projeto
A razão para isso é que a etapa de trabalho existente que executa o pacote contém uma opção /ENVREFERENCE na linha de comando e esse valor deve ser atualizado para a nova versão do pacote.
Isso não é óbvio, pois usar o SSMS para visualizar a etapa do trabalho não exibe essa opção em nenhum lugar. A única maneira que encontrei para corrigir isso é criar um script para soltar e criar o trabalho, obter o reference_id correto usando um código como este:
e, em seguida, atualizando o parâmetro @command da chamada para sp_add_jobstep com o novo número.
Referências úteis (que você não encontrará pesquisando a mensagem de erro):
Postagem antiga, mas para ajudar outras pessoas e pode ser uma solução: quando o pacote SSIS é executado a partir de um trabalho, ele usará as referências definidas no catálogo do projeto SSIS.
Ao implantar um projeto SSIS novamente, essas referências são perdidas e você precisa redefini-las no Catálogo SSIS.
No SSMS > Conectar a instância > abra a árvore Catálogos do Integration Services > SSIDB > Projetos > Clique com o botão direito do mouse no projeto que contém o Pacote executado no Trabalho do SQL Agent > Clique em Configurar > Clique em Referências
A referência ainda existe? Se não adicionar novamente. Você também pode criar um script como um sqlscript pós-implantação.
Você pode criar um script criando a referência, as variáveis de ambiente e a associação ao parâmetro usando:
Se você fizer isso antes de criar o trabalho do agente, poderá usar o ID de referência do ambiente no texto do comando de criação do trabalho do agente.