Игнорировать ПО УМОЛЧАНИЮ с Sql Сравнить

Недавно я скачал бесплатную пробную версию программного обеспечения RedGate для SQL Compare. Мне нужно доказать, что это полезный инструмент для моей компании, поэтому мы можем получить некоторые лицензии, но также хотим синхронизировать пару схем БД. Я пытаюсь провести сравнение схем на двух базах данных, но получаю нежелательное поведение. Проблема появляется, когда мы используем DEFAULT ограничение для getdate(), Sql Compare отображает это как разницу, когда на самом деле это то же самое.

[lst_updt_dtm] [datetime] NOT NULL CONSTRAINT [DF__event_fil__lst_u__26667738] DEFAULT (getdate()),

Отличается от

[lst_updt_dtm] [datetime] NOT NULL CONSTRAINT [DF__event_fil__lst_u__668030F6] DEFAULT (getdate()),

Я хотел бы игнорировать их как различия и получить истинное сравнение того, где схема изменяется. Мои исследования привели меня к нескольким людям с такой же проблемой, но во всех случаях redgate отвечает что-то вроде: "Эта функция не существует и будет рассмотрена в будущем выпуске":

http://www.red-gate.com/messageboard/viewtopic.php?t=8816

Тем не менее, я не смог найти информацию об этом, которая была менее 5 лет, поэтому я надеюсь, что с тех пор они добавили эту функцию

Я пытался просмотреть параметры проекта и поэкспериментировать с ними, но ничего не кажется специфичным для этой проблемы. Самое близкое, что я нашел, было это:

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

При применении этой опции кажется, что проблема решена, многие из этих элементов были изменены с "Различия" на "Идентичные объекты". Но я беспокоюсь, что это просто дает мне ложный позитив. Я не хочу всегда игнорировать ограничения и ключи.

Кроме того, если то, что я пытаюсь достичь, действительно невозможно с текущей версией Sql Compare, мне нужен способ игнорировать эти различия при составлении отчетов и развертывании. Я думал, что следующие обходные пути могут быть возможными:

  1. Отфильтруйте поля аудита, в которых возникает эта проблема, такие как lst_updt_dtm а также archived_dtm
  2. Вручную пройдите и отметьте пункты, где возникает эта проблема (пожалуйста, не заставляйте меня)

1 ответ

Решение

Игнорировать имена ограничений только игнорирует имя ограничения. Все остальные свойства в ограничении все еще оцениваются. Вы также можете игнорировать имена ограничений, когда эти имена автоматически генерируются SQL Server, поэтому имена сравниваются, если только SQL Server не назвал ограничение для вас.

Другие вопросы по тегам