【问题标题】:SSIS Script Tasks losing codeSSIS 脚本任务丢失代码
【发布时间】:2018-07-15 18:31:29
【问题描述】:

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

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

作为我最后一次尝试成功,我已经升级到15.5.1,问题仍然存在。

【问题讨论】:

  • 似乎无法复制。你把评论放在哪里?在Main()?
  • 可能听起来很傻,但您确定在编辑并关闭脚本后单击脚本任务上的“确定”吗?如果您单击取消,则不会保存脚本更改。
  • 不幸的是,这是一个常见问题,并且自 BIDS 以来一直在发生(如果我没记错的话)。据我所知,它仍然是 SSDT 2017 中的一个“功能”。这不是一个解决方案,但我的建议是确保您始终使用某种版本管理。因此,如果脚本丢失,您可以恢复它。
  • 您是否尝试在关闭脚本编辑器窗口之前单击保存按钮?
  • 是的,保存按钮已被按下。许多其他人已经能够复制。 Windows 版本是 10。但这不是操作系统问题,而是 Visual Studio 中的 SSDT 问题。我打开了一张用户语音票,该票正在获得一些赞成票,并且正在接受审查。 feedback.azure.com/forums/908035-sql-server/suggestions/…

标签: sql-server ssis etl sql-server-data-tools script-task


【解决方案1】:

我有类似的东西。当我将包导入 SQL Server 时,所有代码都被剥离了。对我们来说,事实证明 SSMS 使用不兼容的 DTS 版本默默地剥离代码。 SSMS v18 正在删除使用 DTSv14 构建的脚本。一旦我在新版本的 Visual Studio 中打开它们,将一个“块”移动 1px,然后保存,它将包更改为 DTSv15,然后使用 SSMS v18 正常导入。

只是为了验证,我尝试将 SSMS v17 与 DTSv14 包一起使用,脚本任务被单独留下并正常导入。但由于其他原因,我们需要使用 SSMS v18。

【讨论】:

    【解决方案2】:

    如果在编辑代码后关闭/取消 Visual Studio 中的脚本任务编辑器窗体,代码将不会保存。即使代码保存在另一个 Visual Studio 编辑器(您编辑代码的那个编辑器)中,也会发生这种情况。

    您必须点击“确定”才能保存代码。

    【讨论】:

    • 已经完成但仍然导致代码丢失。
    【解决方案3】:

    如果脚本中有错误,则不会保存。检查您的脚本中的错误菜单 Build / Run Code Analysis on Solution 或按 Alt+F11

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多