为什么Visual Studio 2010中的Schema Compare在没有时显示差异?

时间:2010-04-27 21:27:26

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

我曾希望Visual Studio 2010会对Schema Comparison功能带来一些改进。我怀疑有一些,但我不能得到一些基本的工作。我从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.

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

有什么想法吗?

3 个答案:

答案 0 :(得分:1)

它做了一些非常模糊的设置 - 我发现2个表的锁升级设置不同。我通过SSMS GUI只能在表的属性中找到它。

我会想象它还有其他不为人知的模糊设置......

答案 1 :(得分:1)

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

答案 2 :(得分:1)

我今天正在这样做,并且它不会忽略像制表符或返回这样的内容,即使忽略了空格。我将文本复制/粘贴到winmerge,然后打开视图空格,我可以看到(非空白的)差异。

§¶

密钥代码alt-20和alt-21