Репликация SQL Server не реплицирует внешние ключи - PullRequest
7 голосов
/ 26 сентября 2011

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

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

Итак, вот мои вопросы:

  1. Должна ли репликация копировать эти внешние ключи по умолчанию?
  2. Если нет, как я могу заставить их реплицироваться?
  3. Если это так, что может привести к тому, что они не будут реплицироваться?

ПРИМЕЧАНИЕ. В моей исходной базе данных есть TableA и TableB.TableA имеет первичный ключ AId.TableB имеет внешний ключ в этом столбце.И я делаю транзакционную репликацию TableA и TableB.

1 Ответ

6 голосов
/ 06 декабря 2011

ОК, я столкнулся с чем-то, но это будет зависеть от того, какой тип репликации вы используете.

Я использую транзакционную репликацию. Найдите публикацию, которую вы используете здесь,

(Management Studio) Репликация -> Локальные публикации -> (Публикация)

Щелкните правой кнопкой мыши публикацию и выберите свойства, затем в разделе статей щелкните правой кнопкой мыши «Таблицы» и выберите параметр «Задать свойства всех статей таблицы».

Там первый пункт - «Копировать ограничения внешнего ключа».

Не пробовал, но я ожидаю, что это сработает.

Вы также можете применить эти настройки для каждой таблицы, если щелкнуть правой кнопкой мыши по одной таблице и выбрать опцию «Задать свойства этой статьи таблицы».

...