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

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

person Cole9350    schedule 02.04.2014    source источник
comment
Разве вы не думаете, что это то, что вы должны спросить у Redgate как о стороннем приложении, и немногие люди используют его, а также служба технической поддержки Redgate будет более чем счастлива похвастаться своим продуктом перед вами :)   -  person M.Ali    schedule 03.04.2014
comment
Возможно, но я полагал, что это подпадает под категорию поддержки, которую они могут неохотно предоставлять мне, поскольку я еще не являюсь реальным клиентом. Спасибо хоть   -  person Cole9350    schedule 03.04.2014
comment
Вы потенциальный клиент, поверьте мне, это не только красные ворота, любой бизнес будет отдавать приоритет потенциальным клиентам перед своими существующими клиентами. Они будут более чем рады помочь вам :)   -  person M.Ali    schedule 03.04.2014
comment
Да, это правда, я попробую.   -  person Cole9350    schedule 03.04.2014


Ответы (1)


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

person Wonko    schedule 03.04.2014
comment
Хорошо, ценю ваш ответ. Просто чтобы уточнить, вы говорите, что вариант, который я нашел, игнорировать ограничения и имена индексов, будет правильным способом справиться с этим? - person Cole9350; 03.04.2014
comment
Да, это заставило бы его прекратить сравнивать имена ограничений. - person Wonko; 07.04.2014
comment
Я принимаю это как ответ, вариант, который я использую для решения этой проблемы, на самом деле игнорирует системные ограничения и имена индексов. Спасибо - person Cole9350; 07.04.2014