Первичный ключ с опцией «НЕ ДЛЯ РЕПЛИКАЦИИ»

21

Я недавно принял проект и обнаружил, что в большинстве таблиц первичный ключ имеет свойство " NOT FOR REPLICATION".

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

Было ли это ошибкой со стороны предыдущего разработчика (который больше не работает на компанию), или есть какая-то другая логика? Мы даже не используем репликацию в производственной среде, так что это на самом деле не затрагивает ничего серьезного, но мне было интересно, есть ли другие побочные эффекты от удаления всех этих директив, о которых я не знаю.

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

Стив Рукутс
источник

Ответы:

24

NOT FOR REPLICATION указывает, что при репликации записи в эту таблицу любое значение, которое вставляется в столбец идентификаторов через агент репликации, сохраняет свое исходное значение из исходной системы, но любые записи, добавленные локально, по-прежнему увеличивают значение идентификатора.

ОБНОВЛЕНИЕ: Старая ссылка не работает

Вот ссылка на документацию table_constraint, в которой подробно описано, что будет делать установка NOT FOR REPLICATION:

Ограничение таблицы

steoleary
источник
2
Ссылка прогнила
Александр Кравец
@AleksandrKravets ура, обновлено
steleary