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