Visual Studio 2017中的SQL Server比较架构

ccb*_*ger 6 sql-server database-schema schema-compare visual-studio-2017

我试图在同一台服务器上比较两个数据库的模式.

这两个数据库被命名为benchmarkdbbenchmarkdb_dev.

在Visual Studio 2017中,我转到工具> SQL Server>新架构比较...

从标有"选择源"和"选择目标"的下拉菜单(如下图所示),我想选择benchmarkdb作为源和bencmarkdb_dev目标.

在此输入图像描述

单击选择源后,弹出"选择源模式",然后单击"选择连接..."按钮,这会弹出另一个弹出窗口.最新的弹出窗口(下图中右侧的弹出窗口)显示了我想要比较的两个数据库.

在此输入图像描述

但是,在我为源或目标选择一个之后,所有弹出窗口关闭,但没有任何内容填充"选择源..."或"选择目标..."下拉菜单.事实上,它只是回到第一张图片.

有没有解决方案,所以我可以比较数据库之间的模式?

更新:

我在VS 2012,2015和2017上尝试了这一点.所有人都面临同样的问题.VS软件和系统软件是最新的.以下是我正在使用的某些版本的软件,如果有任何帮助的话.

Windows 7企业版SP1

VS 2012,2015和2017

SQL Server 2014

.NET Framework v4.7.02053

Cub*_*ter 7

好的,所以我设法修复它.首先,您需要从Microsoft页面安装SSDT.只是谷歌吧.启动安装程序时,请确保在单个组件中也列出了它(在修改时).只需要SQL Server数据库(我可以从Integration Services中选择3个以上).

接下来,您需要在Schema Compare模式中"从历史记录中删除连接"以进行连接选择.

我此时关闭了VS,以确保连接不再存在于历史中.下次启动VS时,您不应该在历史记录中遇到问题连接.

重新创建连接(我检查了"记住密码")和瞧.架构比较有效.

不太确定,但在绝望中我还安装了"Redgate ReadyRoll Core","Redgate SQL Prompt Core"和"Redgate SQL Search".我认为这不重要,但如果一切都失败了......

编辑:这适用于2台机器,它似乎没有连接到VS版本.


小智 2

我有同样的问题,但我不知道我是否有相同的根本原因。

在将数据库从 Window Server 上的 SQL Server 更改为 Linux 容器上的 SQL Server 后,我的问题开始出现。模式比较似乎接受我的选择,但数据库字段永远不会真正填充,我无法执行比较。

为了解决这个问题,我必须做两件事。

  1. 更新 Visual Studio(使用 Visual Studio 中的标准更新程序)。
  2. 将 Visual Studio 的 SQL Server 开发工具 (SSDT) 加载项更新为支持 Linux 上的 SQL Server 的预览版本。该下载可在此处进行。

两次更新完成后,我可以选择数据库并在我的项目和 Linux 上的 SQL Server 之间执行架构比较,就像我在 Windows 上的 SQL Server 上所做的那样。