Как проверить, содержат ли две базы данных SQL Server одинаковые данные? - PullRequest
4 голосов
/ 20 мая 2009

Учитывая две базы данных MS SQL, которые, как известно, имеют идентичные схемы, как мне определить, содержат ли они идентичные копии данных?

Я использую MS SQL Server 2008 Express и кодирую в C # и v2.0 .Net Framework, используя API-интерфейсы ADO.NET. Оба экземпляра базы данных находятся на одном и том же сервере SQL.

Справочная информация: я написал программное обеспечение для экспорта данных из базы данных в набор файлов и для повторного импорта данных из этих файлов (в другую копию базы данных); Я хочу проверить, потерял ли я какие-либо данные во время прохождения туда-обратно (более конкретно, есть ли какие-либо данные, потерянные или оставленные во время первоначального экспорта).

Грубый способ, по-моему, будет SELECT * из каждой таблицы в каждой базе данных, а затем сравнивать выбранные наборы записей, используя код на стороне клиента. Есть ли другой способ, который потребует меньше кода на стороне клиента?

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

Ответы [ 3 ]

1 голос
/ 20 мая 2009

RedGate Сравнение данных SQL может быть ответом.

1 голос
/ 02 марта 2013

Вы можете использовать Redgate SQL DATA COMPARE 1> Он подскажет общее количество данных в каждой таблице вашей базы данных. 2> Он сгенерирует скрипт, который покажет, какие данные отличаются в нем, так что, выполнив его, вы можете сделать данные одинаковыми. 3> Он покажет, отличается ли схема от SQL COMPARE 4> Много полезных функций, вы также можете синхронизировать две базы данных.

В дополнение к этому Visual Studio 2012 дает вам возможность сравнивать данные. Вы можете попробовать это также

1 голос
/ 20 мая 2009

Первым шагом будет сравнение количества записей. Вы можете сделать это с быстрым

select count('x') from TAbleY

Вам нужно будет сделать это для каждой таблицы.

Для сравнения данных в таблицах я бы использовал функцию CHECKSUM .

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