6

我正在尝试比较同一服务器上两个数据库的架构。

这两个数据库被命名为benchmarkdbbenchmarkdb_dev

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

从标有“选择源”和“选择目标”的两个下拉菜单中(如下图所示),我想选择benchmarkdb作为源和bencmarkdb_dev目标。

在此处输入图像描述

点击选择一个源后,弹出“Select Source Schema”,我点击了“Select Connection...”按钮,又弹出了一个。最新的弹出窗口(下图中右侧的那个)显示了我要比较的两个数据库。

在此处输入图像描述

但是,在我为源或目标选择一个之后,所有弹出窗口都会关闭,但没有任何内容填充“选择源...”或“选择目标...”下拉菜单。事实上,它只是回到看起来像第一张照片。

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

更新:

我在 VS 2012、2015 和 2017 上试过这个。所有人都面临同样的问题。VS软件和系统软件是最新的。以下是我正在使用的一些软件版本,如果有帮助的话。

Windows 7 企业版 SP1

对比 2012、2015 和 2017

SQL Server 2014

.NET 框架 v4.7.02053

4

3 回答 3

7

好的,所以我设法修复它。首先,您需要从 Microsoft 页面安装 SSDT。只是谷歌它。确保在启动安装程序时(在修改时)也将其列在各个组件中。只需要 SQL Server 数据库(我可以从 Integration Services 和另外 3 个中选择)。

接下来,您需要在 Schema Compare 模式中“从历史中删除连接”以进行连接选择。

我此时关闭了 VS,以确保该连接不再存在于历史记录中。下次启动VS,你应该不会有历史上有问题的连接。

重新创建连接(我检查了“记住密码”),瞧。模式比较有效。

不太确定,但无奈之下我还安装了“Redgate ReadyRoll Core”、“Redgate SQL Prompt Core”和“Redgate SQL Search”。我认为这并不重要,但如果一切都失败了......

编辑:这在 2 台机器上工作,它似乎没有连接到 VS 版本。

于 2018-03-19T09:32:21.797 回答
2

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

将我的数据库从 Window Server 上的 SQL Server 更改为 Linux Container 上的 SQL Server 后,我的问题就开始了。架构比较似乎接受了我的选择,但数据库字段永远不会真正填充,我无法执行比较。

我必须做两件事来解决这个问题。

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

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

于 2017-09-08T02:08:01.170 回答
0

如果运行本地数据库,请检查您使用的 SQL Management Studio 版本

我在运行安装了 SQL Server 2017 的 Visual Studio Pro 2017 和 SQL management studio v18.6 时遇到了同样的问题。我尝试了上述所有解决方案,但没有运气即使回到 Visual Studio 2015 对我也不起作用。什么起作用了,但改回 SQL Management Studio v17.9.1

没有问题了。我可能会尝试再次将 Visual Studio 升级到 2017 以查看现在是否有效

于 2020-10-09T15:59:48.213 回答