我目前正在使用 Visual Studio 2015(在 BIDS 2008 中制作)更新我们所有的 ETL,并将它们重新部署到在 SQL Server 2016(最初是 2008R2)上运行的新报告服务器上。
在更新其中一个 ETL 并尝试在新服务器上运行时,出现此错误:
包执行失败。步骤失败。
有时它也会产生这个错误:
来源:加载事实表 SSIS.Pipeline 描述:“复制到事实表”验证失败并返回验证状态“VS_NEEDSNEWMETADATA”。
我尝试删除并重新添加 OLEDB 目标、连接字符串并打开列映射以刷新元数据。我还重新创建了整个数据流任务,但我仍然遇到同样的错误。
该软件包在我的本地机器上运行良好。
更新:
我开始拆开包装并只运行其中的一部分以尝试缩小哪个部分失败。加载到临时表似乎失败,但我找不到原因。
我最终决定尝试重新创建整个事物。重新创建整个包后,仍然没有运气。下面的图片来自服务器本身的事件查看器,但它没有给我任何新信息。
原文由 Jonathan Porter 发布,翻译遵循 CC BY-SA 4.0 许可协议
我终于找到了问题,这就是我的做法。
因为我从 SSMS 获得的错误消息不是很有洞察力,所以我首先打开了我的远程桌面并登录到服务器。然后我转到管理工具>事件查看器,然后转到 Windows 日志>应用程序,查看失败的事件是否会提供更多详细信息。
我采取的下一步是从命令行运行包 , 因为消息应该更详细。打开cmd,将目录更改为我的包所在的目录,然后…
最后,此处的错误消息显示包试图写入的表中缺少列。我添加了那些列,瞧!