Visual Studio 架构比较找不到生成的脚本
Posted
技术标签:
【中文标题】Visual Studio 架构比较找不到生成的脚本【英文标题】:Visual Studio schema compare can't find generated script 【发布时间】: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可能有意义 【参考方案1】:不是从连接字符串直接比较,而是生成架构文件,然后比较该文件
执行以下步骤:
-
在 Visual Studio 中转到 Sql Server 对象资源管理器
右键单击数据库名称
选择提取数据层应用程序
选择文件保存位置
选择仅架构
取消选择所有复选框选项或根据您的比较要求进行检查
对源数据库和目标数据库执行相同的操作
然后
比较架构时选择选项数据层应用文件选项
【讨论】:
【参考方案2】:我注意到如果 SSMS 正在运行,SSDT 不会生成 Schema Compare 脚本。一旦我关闭 SSMS 并尝试再次生成脚本,SSDT 就会成功创建一个。
【讨论】:
【参考方案3】:根据this page“生成的脚本出现在新的 Transact-SQL 编辑器窗口中”。
当这对我不起作用时,我关闭了架构比较窗口以外的所有打开的窗口,并重新勾选了列表中的所有差异(我没有勾选一些)。执行此操作并再次运行“生成脚本”后,Visual Studio 实际上确实打开了一个带有脚本的新窗口(文件名是“C:\Users\me\AppData\Local\Temp\MyDbName_Update1.publish.sql”)。
【讨论】:
以上是关于Visual Studio 架构比较找不到生成的脚本的主要内容,如果未能解决你的问题,请参考以下文章
Visual Studio 2010 架构比较 - 更新脚本生成
架构比较后,Visual Studio 中的“生成脚本”按钮被禁用