Как я могу отсортировать вывод сгенерированного сценария SQL?

Я сравниваю две базы данных 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 на живую среду. Добавьте сотни таблиц, хранимых процедур, представлений и т. Д., И это быстро превратится в беспорядок.

Мои текущие варианты:

  1. Вручную отсортировать содержимое перед сравнением
  2. Создать программу для создания скриптов в определенном порядке
  3. Найти бесплатное приложение, которое сортирует сгенерированные скрипты
  4. Оплатить продукт который делает это как часть своего набора инструментов
  5. (Другой способ сделать это)

Надеюсь, мне не хватает только флажка с надписью «Сортировать скрипты по имени», но я не вижу ничего, что Является ли это. Я не считаю, что мне нужно платить за такую ​​простую вещь, как опция «сортировка вывода» или множество других ненужных инструментов, поэтому вариант 4 должен быть крайней мерой.

РЕДАКТИРОВАТЬ У меня есть полный доступ к обеим средам, но рабочая среда заблокирована и размещена на виртуальных серверах, а удаленный рабочий стол - это типичный способ доступа в реальном времени.Я предпочитаю копировать все, что могу, в разработку и сравнивать там. Я могу сгенерировать скрипты для каждого типа объекта в базе данных в виде отдельных файлов (таблиц, SP, функций и т. Д.)

6
задан Kevin Hogg 10 October 2011 в 15:56
поделиться