Биты и байты.

Биты и байты.

пятница, 8 июля 2016 г.

Найди отличия в таблицах SQL

Понадобилось тут при переходе на новую систему сравнить данные справочников с архивной системой.
Для этих целей отлично пригодилась утилита Tablediff , главное требование чтобы таблицы имели одинаковую структуру и содержали первичный ключ либо столбец идентификатора  identity, rowguid или уникальный ключ.
Плюс этой утилиты в том что можно легко сравнивать таблицы с разных серверов и конечно же есть возможность привести таблицы к единому виду добавив всего лишь один параметр -f и получить необходимый скрипт .

Если таблицы не совпадают по структуре проще написать свой запрос для сравнения используя связанные серверы и команды INTESECT  и EXCEPT или создать представления и сравнить их.
Утилита устанавливается вместе с опцией Репликация на SQL сервер, так что можно скопировать к себе с любого доступного сервера
Обычно утилита располагается по адресу C:\Program Files\Microsoft SQL Server\110\COM
В самом примитивном виде команда выглядит так
tablediff.exe" -sourceserver MyServer1 -sourcedatabase MyDatabase1  -sourceschema SourceSchema -sourcetable MyTable1 -destinationserver MyServer1 -destinationdatabase MyDatabase1 -destinationschema DestSchema -destinationtable MyTable2 -dt -et TableDiff -o C:\Shared\Cmp_tables_sql\TableDiff.txt -f C:\Shared\Cmp_tables_sql\Script\Tablediff.sql

результат пишется в файл TableDiff.txt  и таблицу TableDiff

About