SSIS脚本任务丢失代码

15

我遇到一个非常奇怪的问题,导致脚本任务代码被清空。我已经在2-3台不同的计算机上进行了测试。我们正在运行SSDT 15.4预览版。复现此问题的步骤如下:

  1. 在foreach循环容器中创建一个脚本任务。
  2. 在脚本任务中创建一个注释。
  3. 更改或添加foreach中的变量映射。
  4. 保存包。
  5. 关闭包。
  6. 打开包。
  7. 打开脚本任务,注释将会消失。

作为最后一次成功尝试,我升级到了15.5.1版本,但问题仍然存在。


2
可能听起来有点傻,但你确定在编辑并关闭脚本后点击“确定”按钮吗?如果你点击取消,就不会保存脚本更改。 - Aaron Dietz
1
这是一个常见的问题,不幸的是,自BIDS以来就一直存在。据我所知,在SSDT 2017中仍然是一个“特性”。这并不是一个解决方案,但我的建议是确保您始终使用某种版本管理。因此,如果脚本丢失,您可以恢复它。 - Thom A
1
你尝试过在关闭脚本编辑器窗口之前点击保存按钮吗? - Hadi
Windows 版本?(开始-运行 winver) - billinkc
2
是的,保存按钮已经被点击了。许多其他人也能够复现这个问题。Windows版本是10。但这不是操作系统问题,而是Visual Studio中SSDT的问题。我在uservoice上有一个票据正在得到一些赞同并正在审核中。https://feedback.azure.com/forums/908035-sql-server/suggestions/33215863-ssis-script-tasks-losing-code?tracking_code=36c251f37f8d7fef5c59a1d1456489bf - DataNerd
显示剩余9条评论
3个回答

1
如果您在 Visual Studio 中编辑代码后关闭/取消“脚本任务编辑器”窗体,则代码不会保存。即使代码已在其他 Visual Studio 编辑器中保存 - 即您编辑代码的那个编辑器,这种情况仍会发生。
必须单击“确定”才能保存代码。

1
已经做了,但仍导致代码丢失。 - DataNerd

0

如果脚本中存在错误,则不会保存。请在“生成/运行解决方案代码分析”菜单或按下Alt+F11键中检查您的脚本是否存在错误。


这不是问题所在。问题是可以重现的。它发生在foreach容器中的脚本任务中。不确定具体情况是否适用于所有容器还是仅适用于每个容器。我已经提交了一个uservoice,并获得了32个赞同。https://feedback.azure.com/forums/908035-sql-server/suggestions/33215863-ssis-script-tasks-losing-code - DataNerd

0
我曾经遇到过类似的问题。当我将包导入SQL Server时,所有代码都被剥离了。后来我们发现,SSMS在使用不兼容的DTS版本时会默默地剥离代码。SSMS v18会删除使用DTSv14构建的脚本。一旦我在新版本的Visual Studio中打开它们,将一个“块”移动1像素,然后保存,它就会将包更改为DTSv15,然后使用SSMS v18导入正常。
为了验证,我尝试使用SSMS v17和DTSv14包,脚本任务保持不变,并成功导入。但出于其他原因,我们需要使用SSMS v18。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接