【问题标题】:SQL Schema Compare from one SQL version to another not workingSQL Schema 从一个 SQL 版本比较到另一个不工作
【发布时间】:2016-09-29 17:04:15
【问题描述】:

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

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

【问题讨论】:

    标签: sql visual-studio sql-server-2008 sql-server-2014 sql-server-data-tools


    【解决方案1】:

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

    然后,如果问题仍然存在,我建议使用以下说明捕获跟踪日志,并使用“开发人员工具 (SSDT,投标等)”

    为 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 stop SSDTDebug -ets
    • 生成的 ETL 文件将位于 %LOCALAPPDATA%\SSDTDebug.etl 和 %LOCALAPPDATA%\DacFxDebug.etl。

    【讨论】:

    • 对于第一个命令,将其分成两个命令后,第二个报告 -ets 未知,但它适用于第一个命令。在没有 -ets 的情况下运行运行良好。
    • 刚刚发现,您在第二个命令上复制粘贴是一个程序将 -- 更改为一个并且无效,但我现在正在运行它。
    • 我已经编辑了上面的文字,它是从其他地方复制/粘贴的,与 StackOverflow 的格式不兼容。
    【解决方案2】:

    不要点击“更新”,而是尝试“生成脚本”,然后在目标数据库上运行脚本。

    【讨论】:

    • 两者都做同样的事情,它甚至没有达到这一点。通常,在该行出现的窗口中,它下方会出现两行,但它们都没有出现,它没有进入预览,更不用说生成脚本了。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-12-04
    • 1970-01-01
    • 1970-01-01
    • 2015-04-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多