SSIS错误:VS_NEEDSNEWMETADATA

Jon*_*ter 4 sql t-sql sql-server ssis sql-server-2016

我目前正在使用Visual Studio 2015(在BIDS 2008中制作)更新所有ETL,并将它们重新部署到在SQL Server 2016上运行的新报表服务器(最初为2008R2).

在更新其中一个ETL并尝试在新服务器上运行时,我收到此错误:


包执行失败.步骤失败了.

有时它也会产生这个错误:

来源:加载事实表SSIS.Pipeline描述:"复制到事实表"验证失败并返回验证状态"VS_NEEDSNEWMETADATA".


我尝试删除并重新添加OLEDB目标,连接字符串并打开列映射以刷新元数据.我还重新创建了整个数据流任务,但我仍然遇到了同样的错误.

该程序包在我的本地计算机上运行良好.

更新:

我开始拆开包装并仅运行它们以试图缩小哪个部分失效.它似乎没有加载到临时表,但我找不到原因.

我最终决定尝试重新创造整个事物.重新创建整个包后,仍然没有运气.下图来自服务器本身的事件查看器,但它没有给我任何新信息.

在此输入图像描述

来自事件查看器的包错误

Jon*_*ter 11

我终于找到了问题,这就是我如何做到的.

因为我从SSMS获得的错误消息不是很有见地,所以我首先打开了我的远程桌面并登录到服务器.然后我转到管理工具>事件查看器,然后是Windows日志>应用程序,以查看失败事件是否会提供更多详细信息.

在此输入图像描述 在此输入图像描述 它没有给我很多.

我采取的下一步是从命令行运行包,因为消息应该更详细.打开cmd,将目录更改为我的包中的目录然后...

DTEXEC /FILE YourPackageName.dtsx
Run Code Online (Sandbox Code Playgroud)

最后,此处的错误消息显示程序包尝试写入的表中缺少列.我添加了那些列,瞧!


小智 8

我已经尝试了上面和其他站点提供的所有解决方案。没事。

我从我的朋友那里得到了一个建议。

步骤如下:

  1. 右键单击源/目标数据流组件。
  2. 转到高级编辑器->组件属性
  3. 查找ValdateExternalMetadata为False

试试你的运气。这是一个可悲的问题,让我无知了两天。

在此处输入图片说明

  • 2020 年,这一点在 VS-2019 中仍然没有改变。只是仅供参考。 (3认同)