SQL 从一个 SQL 版本到另一个版本的架构比较不起作用

SQL Schema Compare from one SQL version to another not working

在 Visual Studio(2013 年或 2015 年,它们都做同样的事情)> SQL 架构比较,我试图从 sql 2008 上的一个数据库复制架构,以sql 2014 上的数据库。从 2008 -> 2008 年工作正常,2014->2014 年工作正常,但是当尝试从 2008->2014 年开始时,它不起作用。在 运行 比较和命中更新后,它只是位于“模式比较生成脚本 (db1 > db2) 上,直到它最终冻结并且 visual studio 只是说它很忙,永远不会完成。我找不到解释它卡在哪个点上的日志。

在选项下,我试图忽略兼容性问题,但这并不能解决问题。有什么建议吗?

不要点击 "Update" 尝试 "Generate Script",然后 运行 目标数据库上的脚本。

这可能是模式比较错误。我建议首先确保您使用的是最新版本的 SQL 服务器工具(可在此处下载:https://msdn.microsoft.com/en-us/library/mt204009.aspx

然后,如果问题仍然存在,我建议使用以下说明捕获跟踪日志,并打开一个描述问题的连接问题,并使用类别 [=] 在 https://connect.microsoft.com/SQLServer/feedback/CreateFeedback.aspx 包含跟踪日志32=]

正在收集 SSDT 的事件日志

  • 以管理员身份打开一个新的命令提示符。
  • 运行 这个命令 logman create trace -n DacFxDebug -p "Microsoft-SQLServerDataTools" 0x800 -o "%LOCALAPPDATA%\DacFxDebug.etl" -ets
  • 然后运行这个命令:logman create trace -n SSDTDebug -p "Microsoft-SQLServerDataToolsVS" 0x800 -o "%LOCALAPPDATA%\SSDTDebug.etl" -ets
  • 运行 SSDT 并重现问题。
  • 返回命令提示符并运行执行以下命令: logman 停止 DacFxDebug -ets logman 停止 SSDTDebug -ets
  • 生成的 ETL 文件将位于 %LOCALAPPDATA%\SSDTDebug.etl & %LOCALAPPDATA%\DacFxDebug.etl.