Я сравниваю две базы данных SQL-сервера (среда разработки и рабочая среда, SQL2005 и SQL2008 соответственно), чтобы проверить различия между ними. Если я создаю сценарий для каждой базы данных, я могу использовать простое текстовое сравнение, чтобы выделить различия.
Проблема в том, что сценарии должны быть в одном порядке, чтобы упростить сравнение и избежать простых различий, когда порядок хранимых процедур отличается, но их содержимое одинаково.
Итак, если я сгенерирую это из разработки:
1: CREATE TABLE dbo.Table1 (ID INT NOT NULL, Name VARCHAR(100) NULL)
2: CREATE TABLE dbo.Table2 (ID INT NOT NULL, Name VARCHAR(100) NULL)
3: CREATE TABLE dbo.Table3 (ID INT NOT NULL, Name VARCHAR(100) NULL)
И это из живого:
1: CREATE TABLE dbo.Table1 (ID INT NOT NULL, Name VARCHAR(100) NULL)
2: CREATE TABLE dbo.Table3 (ID INT NOT NULL, Name VARCHAR(100) NULL)
3: CREATE TABLE dbo.Table2 (ID INT NOT NULL, Name VARCHAR(100) NULL)
Сравнивая две выделенные строки 2 и 3 как разные, но на самом деле они идентичны, просто мастер создания скриптов сделал table3 перед таблицей 2 на живую среду. Добавьте сотни таблиц, хранимых процедур, представлений и т. Д., И это быстро превратится в беспорядок.
Мои текущие варианты:
Надеюсь, мне не хватает только флажка с надписью «Сортировать скрипты по имени», но я не вижу ничего, что Является ли это. Я не считаю, что мне нужно платить за такую простую вещь, как опция «сортировка вывода» или множество других ненужных инструментов, поэтому вариант 4 должен быть крайней мерой.
РЕДАКТИРОВАТЬ У меня есть полный доступ к обеим средам, но рабочая среда заблокирована и размещена на виртуальных серверах, а удаленный рабочий стол - это типичный способ доступа в реальном времени.Я предпочитаю копировать все, что могу, в разработку и сравнивать там. Я могу сгенерировать скрипты для каждого типа объекта в базе данных в виде отдельных файлов (таблиц, SP, функций и т. Д.)