Erro do SSIS: VS NEEDSNEWMETADATA
estou actualmente a actualizar todos os nossos ETLs utilizando o Visual Studio 2015 (feito em licitações de 2008) e a transferi-los para um novo servidor de relatórios em execução no SQL Server 2016 (originalmente 2008R2).
enquanto actualizava um dos ETLs e tentava correr no novo servidor, tive este erro:
a execução do pacote falhou. O passo falhou.
às vezes também produz este erro:
Fonte: Load Fact Table SSIS.Pipeline Descrição: "Copiar Para O Fato Tabela " validação falhada e estado de validação devolvido "VS_NEEDSNEWMETADATA".
tentei apagar e adicionar de novo O destino do OLEDB, os textos de ligação e abri os mapeamentos das colunas para actualizar os meta-dados. Eu também recriei toda a tarefa de fluxo de dados, mas ainda estou recebendo o mesmo erro.
O pacote funciona bem na minha máquina local.actualizar:
Comecei a desmontar o pacote e a correr apenas pedaços para tentar reduzir a parte que estava a falhar. Parecia estar a falhar ao carregar para a mesa de preparação, mas não consegui descobrir porquê. Finalmente decidi tentar recriar tudo. Depois de recriar o pacote inteiro, ainda não teve sorte. A imagem abaixo é do visualizador de eventos no próprio servidor, mas não me deu nenhuma informação nova.6 answers
Porque as mensagens de erro que estava a receber do SSMS não eram muito perspicazes, primeiro abri o meu ecrã remoto e entrei no servidor. Em seguida, eu fui para Ferramentas Administrativas > Visualizador de Eventos e, em seguida, Windows Logs > aplicação para ver se o evento falhou iria fornecer maior detalhe.
O passo seguinte que dei foi executar o pacote a partir do linha de comandos porque as mensagens devem ser mais descritivas. Abriu o cmd, mudou o directório para aquele em que o meu pacote estava e depois...
DTEXEC /FILE YourPackageName.dtsx
Finalmente, a mensagem de erro aqui mostrou uma coluna em falta nas tabelas onde o pacote estava a tentar escrever. Adicionei aquelas colunas e voilá!
Tal como indicado nos comentários,
se ele corre ok em seu ambiente de desenvolvimento, então o problema não é com o pacote, é com o trabalho agendado no servidor. Tenta recriar isso.
Parece que o servidor tem uma instância cache do pacote que está usando em vez da atualizada. Tente mudar o nome do seu pacote e criar um novo emprego com o novo nome do pacote e veja se isso funciona. Se isso não funcionar, tudo o que posso recomendar nessa altura é cortar o pacote para baixo até que ele tenha sucesso, em seguida, adicionar o próximo passo que falha.
Parece que, a partir da sua solução, o ambiente de desenvolvimento é mais indulgente com actualizações de esquemas do que com a solução implantada. Ainda bem que conseguiste resolver, eliminar a confusão ajuda.
Deve ser criado um 'Proxy' para a execução do pacote SSIS sob o agente do servidor SQL. Você deve então mudar o seu passo de trabalho (ou passos) para correr como o Proxy que você criou.
Tive o mesmo problema há algum tempo e o proxy resolveu-o. Perdoe-me se já tentou isto.Eu tinha o mesmo problema e o meu problema era uma diferença entre dois ambientes, o mesmo campo na mesma tabela uma vez foi escrito com um capital e uma vez não. Assim, o nome era o mesmo, mas com esta pequena diferença (por exemplo, isActive vs IsActive).
Isto veio de um esforço de refactoring, onde usámos a publicação VS database Que não actualizou o nome do campo.É muito comum receber essa mensagem quando duas colunas no ficheiro de código estão a ser inseridas no mesmo campo da tabela.
I. e.
O meu ficheiro de texto tem duas vezes " vizinhança "(a mesma etiqueta para colunas diferentes) e a minha mesa tem" vizinhança "e" neighbhoodb "(repare no" b " no final). A importação irá tentar importar ambas as colunas de texto para o campo "neighborhood" e ignorar o campo "neighborhoodb", irá falhar com o erro "VS_NEEDSNEWMETADATA".