我想验证2个数据表包含相同的数据(用于单元测试),但不幸的是,Assert.AreEqual不起作用,似乎每个数据表包含使其引用不相等的唯一元数据。
我该怎么做?
答案 0 :(得分:4)
如果您想知道它们是否不同:
我会按其键对DataTable进行排序,然后同时迭代两者。如果相同位置的键不同,则表示表格不同。如果键相同,则比较该行的表的其他列。
如果您想了解它们之间的差异:
您可能还想查看DataTable的Merge方法。
答案 1 :(得分:0)
鉴于您正在讨论SQL服务器并且您在同一服务器上有2个数据库,您可以为每个表运行跨数据库EXCEPT
以获得差异计数,如下所示:
SELECT COUNT(*)
FROM (
SELECT * FROM database1.dbo.table1
EXCEPT
SELECT * FROM database2.dbo.table1
) AS diff
我认为这是最快的方式,但我又对你的设置做了很多假设:)