【问题标题】:Visual Studio schema compare can't find generated scriptVisual Studio 架构比较找不到生成的脚本
【发布时间】:2018-12-01 09:20:48
【问题描述】:

我正在使用 Visual Studio 2017 执行 SQL Server 架构比较。我正在按下架构比较实用程序的“生成脚本”按钮并查看消息

“更新脚本生成成功”

但是,我看不到生成的脚本。知道这去了哪里或失败了吗?

【问题讨论】:

  • Visual Studio 架构比较工具在 %TEMP% 文件夹中创建更新脚本。尝试搜索名称为 %TEMP%\LQDB_State_Update1.publish.sql 的文件。文件名中的数字自动递增
  • 很遗憾,我看过那里并没有找到任何东西。
  • 可能是架构没有区别的问题,在这种情况下visual studio并没有真正生成脚本
  • 它在窗格中显示了许多差异。不知道该怎么办。
  • 你有什么版本的 SQL Server 开发工具?从docs.microsoft.com/en-us/sql/ssdt/…安装最新版本的SSDT可能有意义

标签: sql-server visual-studio schema sql-server-data-tools schema-compare


【解决方案1】:

不是从连接字符串直接比较,而是生成架构文件,然后比较该文件

执行以下步骤:

  1. 在 Visual Studio 中转到 Sql Server 对象资源管理器
  2. 右键单击数据库名称
  3. 选择提取数据层应用程序
  4. 选择文件保存位置
  5. 选择仅架构
  6. 取消选择所有复选框选项或根据您的比较要求进行检查

对源数据库和目标数据库执行相同的操作

然后

比较架构时选择选项数据层应用文件选项

【讨论】:

    【解决方案2】:

    我注意到如果 SSMS 正在运行,SSDT 不会生成 Schema Compare 脚本。一旦我关闭 SSMS 并尝试再次生成脚本,SSDT 就会成功创建一个。

    【讨论】:

      【解决方案3】:

      根据this page“生成的脚本出现在新的 Transact-SQL 编辑器窗口中”。

      当这对我不起作用时,我关闭了架构比较窗口以外的所有打开的窗口,并重新勾选了列表中的所有差异(我没有勾选一些)。执行此操作并再次运行“生成脚本”后,Visual Studio 实际上确实打开了一个带有脚本的新窗口(文件名是“C:\Users\me\AppData\Local\Temp\MyDbName_Update1.publish.sql”)。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-03-10
        • 2013-02-12
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多