我在使用 SSIS 包时遇到问题,当目标服务器版本为 SQL Server 2016 时,包部分中包含的脚本不会执行。
创建一个SSIS项目,将目标服务器版本设置为SQL Server 2016(非常重要!)
继续并在默认包中添加一个简单的脚本。这应该可以正常工作。
- 在我的例子中,我有一个脚本可以通过 SMTP 使用 SendGrid 服务发送电子邮件。您可以在此处查看代码:https ://pastebin.com/DW3hfBP3
- 但是我用其他脚本测试了这个问题 类似的东西:
MessageBox.Show("Great. Another bug. Thanks a lot guys...");
会做。
创建包部件。
现在只需尝试将步骤 2 中的简单脚本重新创建到包部分。然后将包部分添加到默认包或另一个包中并执行任务。即使执行成功,脚本也不会执行。
注意:如果您尝试将脚本从默认包复制到包部分,您还应该注意到一个愚蠢的错误,指出版本错误。这就是为什么我说要在包部分重新创建脚本。
我想知道是否有人可以重现这个问题,是否有解决办法?值得注意的是,当目标服务器是 SQL 2017 时,这个问题似乎不会发生。
微软确认这确实是一个错误,将在下一版本的 Visual Studio 2017 SQL Server Data Tools (SSDT) 中修复。
确认是在 Yammer 上的集成服务 (SSIS) 顾问组中。该组已关闭,因此我无法发布指向它的直接链接。然而,这就是我被告知的:
注意:从那时起我就停止使用包部件,而是使用参数化的子包作为替代方案。