如何通过 Visual Studio Schema Compare 不断显示差异?
Posted
技术标签:
【中文标题】如何通过 Visual Studio Schema Compare 不断显示差异?【英文标题】:How to get past Visual Studio Schema Compare constantly showing differences? 【发布时间】:2017-02-27 23:51:34 【问题描述】:我在 Visual Studio 2013 的解决方案中创建了一个数据库项目,并从 SQL 服务器导入了一个数据库。然后我做了一个 SQL 比较;源是数据库,目标是数据库项目。比较结果显示我的一张表已更改。我看到的唯一变化是格式的差异,所以我告诉它更新目标。它进行了更新,我进行了新的比较,它向我展示了同一张表具有相同的差异。 以下是一些差异示例:
-
左侧的内容连续三行,右侧的内容中有一个或两个空白行 - 第 56、58 和 59 行为空白。
左侧是三行格式的内容:
对于插入,
更新,
删除
而右侧在一行上有相同的内容:
用于插入、更新、删除
左侧没有尾随分号:
FROM 已删除
而右侧确实有一个尾随分号:
FROM 已删除;
我如何达到比较结果显示“一切都相同;没有差异”的程度?我没有修改本地数据库项目中的表;有谁知道为什么 Visual Studio 以不同的格式保存它,我能做些什么? 选中“忽略空格”复选框。
【问题讨论】:
我经常遇到同样的问题——双向的。即使我在一个方向上进行了清晰的比较(没有差异)。如果我交换源和目标,然后再次比较,我通常会发现几乎不可能确定和清除的差异。 我发现 Visual Studio 模式比较根本不够可靠或不够准确,所以我最终切换到了运行完美的 Redgate SQL 比较。虽然它不是免费的:( 【参考方案1】:我有一个表,尽管在我的情况下,源是 DB 项目,并且基本上忽略了它(它们在 SQL 术语中是相同的,所以一切都按预期工作,只是有点烦恼)。但是,我随后遇到了与 View 类似的问题,预计这次它想从 DB 中删除 View(即使它在那里和 VS DB 项目中都存在,具有完全相同的文本),这似乎更多严重的,我在它上面敲了一个小时左右(足够好的序言,这就是解决它的原因..)
反转比较(因此在我的情况下从数据库更新项目)。
我这样做了,它认为存在差异,告诉它更新,实际上没有发生任何变化,但现在比较两种方式似乎都很好(手指交叉)。
【讨论】:
以上是关于如何通过 Visual Studio Schema Compare 不断显示差异?的主要内容,如果未能解决你的问题,请参考以下文章
如何只用visual c++编译器而不安装visual studio
如何通过VIsual Studio安装程序修改VS2017?