Самый быстрый способ определить две таблицы данных содержат одинаковые данные? - PullRequest
4 голосов
/ 15 октября 2010

Я хочу убедиться, что в 2 таблицах данных содержатся одинаковые данные (для модульного тестирования), но, к сожалению, Assert.AreEqual не работает, похоже, что каждая таблица данных содержит уникальные метаданные, из-за которых их ссылки не равны.

Как я могу это сделать?

Ответы [ 2 ]

4 голосов
/ 15 октября 2010

Если вы хотите узнать, отличаются ли они:

Я бы отсортировал DataTables по их ключу, а затем перебрал бы и то и другое одновременно. Если ключи разные для одной и той же позиции, то вы знаете, что таблицы разные. Если ключи совпадают, сравните другие столбцы таблиц для этой строки.

Если вы хотите получить различия между ними:

Возможно, вы также захотите взглянуть на метод слияния DataTable.

0 голосов
/ 15 октября 2010

Учитывая, что вы говорите о сервере SQL, и у вас есть 2 базы данных на одном сервере, вы можете запустить кросс-базу данных EXCEPT для каждой таблицы, чтобы получить счет разницы следующим образом:

SELECT COUNT(*) 
FROM (
    SELECT * FROM database1.dbo.table1
    EXCEPT
    SELECT * FROM database2.dbo.table1
) AS diff

Я считаю, что это самый быстрый способ, но опять же я сделал много предположений о вашей настройке:)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...