【问题标题】:Why does Schema Compare in Visual Studio 2010 show differences when there are none?为什么 Visual Studio 2010 中的架构比较在没有差异的情况下显示差异?
【发布时间】:2011-02-13 02:14:40
【问题描述】:

我曾希望 Visual Studio 2010 会对架构比较功能带来一些改进。我怀疑有一些,但我无法得到一些基本的工作。我从 SQL Server 2005 数据库中获取了一个模式。然后为了确保一切正常,我进行了模式比较,选择数据库作为源,我的模式项目作为目标。他们是同步的。当您过滤以仅查看“非跳过对象”时,不会列出任何对象。这告诉我架构确实匹配。

然后,一些架构更改被推送到数据库(在外部,而不是通过 Visual Studio)。我想捕获这些更改的结果,所以我做了另一个模式比较——再次选择数据库作为源,我的项目作为目标。它正确地发现了一些变化。但是,在我“写入更新”到我的项目并重做架构比较之后,它仍然列出了更改。我一直在进行模式比较和编写更新。它们似乎成功,但随后的模式比较总是列出看似相同的更改(就像写入失败一样)。但是,输出窗口只显示成功消息:

Target database synchronization has started.
Analyzing comparison results
Looking for modified catalog or server options
Finding dropped objects in the project system
Finding modified objects in the project system
Ready to process comparison results
Modifying scripts for objects that have changed or have been deleted
Adding new objects to the project system
Target schema was updated successfully. To compare the schema again, click Refresh.

此外,当我单击列为“不同定义”的对象并在“对象定义”窗口中查看这些对象的架构时,我看不出左右窗格中显示的内容之间没有明显差异。请注意,我检查了我的架构比较选项,我忽略了空格。

有什么想法吗?

【问题讨论】:

  • 我很想知道您是否成功地解决了这个问题?
  • 由于某种原因,我无法用它来比较和报告索引的差异!是的,我已经关闭了“忽略”。很奇怪,我找不到其他人有这个问题。

标签: database visual-studio visual-studio-2010 schema datadude


【解决方案1】:

它确实比较了一些非常晦涩的设置 - 我发现 2 个表的锁定升级设置不同。我只能通过 SSMS GUI 在表的属性中找到。

我想它还会寻找其他非常晦涩的设置.....

【讨论】:

    【解决方案2】:

    我在VS 2008也遇到过类似的问题,问题的路径是项目设置为SQL Server 2005项目,但目标服务器实际上是SQL Server 2008。

    【讨论】:

      【解决方案3】:

      我今天正在这样做,它不会忽略制表符或回车之类的东西,即使忽略空格已打开。我将文本复制/粘贴到 winmerge,然后打开视图空白,我可以看到(非空白)差异。

      §¶

      键码 alt-20 和 alt-21

      【讨论】:

      • 制表符和空格之间的空白差异仍然会导致 Visual Studio 2013 的架构比较工具出现误报。是的,在比较选项中检查了忽略空白。深入细节,模式比较仅表明与正文的差异(例如:空白差异)。如果我清除 Ignore Whitespace 选项,我会得到更多差异,因此该复选框会执行某些操作,但我不知道是什么。
      猜你喜欢
      • 2017-04-27
      • 1970-01-01
      • 2020-03-12
      • 1970-01-01
      • 1970-01-01
      • 2018-07-18
      • 1970-01-01
      • 2016-05-29
      • 2018-03-09
      相关资源
      最近更新 更多