3

我曾希望 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.

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

有任何想法吗?

4

3 回答 3

1

我今天正在这样做,它并没有忽略制表符或回车之类的东西,即使忽略空格已打开。我将文本复制/粘贴到 winmerge,并打开查看空白,我可以看到(据说是非空白)差异。

§¶

键码 alt-20 和 alt-21

于 2011-06-16T16:41:04.863 回答
1

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

于 2010-09-10T20:27:55.997 回答
1

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

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

于 2010-06-30T10:06:36.457 回答