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.

enter image description here

erro do pacote do visualizador de eventos

Author: Jonathan Porter, 2016-12-30

6 answers

Finalmente encontrei o problema e foi assim que o fiz.

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.

enter image description here enter image description here Não me deu muito ainda.

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á!

 4
Author: Jonathan Porter, 2017-01-04 13:11:22

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.

Se isso não funcionar,
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.

 1
Author: Beth, 2017-01-06 18:18:30
Já tentou apagar e recriar a fonte? Quando eu recebo isso eu posso geralmente modificar OK qualquer objeto que tem o erro, mas tem que apagar e reconstruir os caminhos entre eles, no entanto, às vezes eu tenho que apagar tudo no fluxo de dados e re-criá-lo.
 0
Author: Andrew O'Brien, 2016-12-29 23:54:48

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.
 0
Author: tlemaster, 2017-01-04 01:07:29

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.
 0
Author: Zsombor Zsuffa, 2018-04-13 08:12:30

É 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".

 0
Author: RaRdEvA, 2018-10-08 20:29:54