Недавно я скачал бесплатную пробную версию программы 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, мне нужен способ игнорировать эти различия при создании отчетов и развертывании. Я думал, что возможны следующие обходные пути:
- Отфильтруйте поля аудита, в которых возникает эта проблема, например
lst_updt_dtm
иarchived_dtm
. - Вручную просмотрите и отметьте пункты, в которых возникает эта проблема (пожалуйста, не заставляйте меня)