1

我正在使用 RedGate SQL Compare 11.6 来比较两个 SQLServer 2016 数据库。

问题是,比较结果包括具有相同列但顺序不同的表。我想排除这个。有没有办法做到这些?

RedGate 的支持论坛和帮助文档说“默认行为是忽略这些差异”,但它似乎并不像那样工作。

4

1 回答 1

2

默认情况下,它不比较列顺序。为了验证这一点,我使用 SQL Server 2016 & Compare 11.6 以这种方式设置了一个测试:

USE Test;
GO
CREATE TABLE dbo.Order1 (
     ID INT,
     NotID TINYINT,
     SomeValue VARCHAR(50)
    );
GO

USE Test2;
GO
CREATE TABLE dbo.Order1 (
     SomeValue VARCHAR(50),
     ID INT,
     NotID TINYINT
    );
GO

当我对这两个表进行比较时,输出如下: 在此处输入图像描述

如果您在顶部注明,它表示有 24 个相同的对象。这两个表算作相同的。但是,比较确实注意到列顺序不同。有一个选项可以设置“强制列顺序”来改变这种行为。启用后,您会从比较中看到: 在此处输入图像描述

这可能就是你所看到的。检查比较项目上的选项。

于 2016-08-30T11:25:04.963 回答