добавить к первичному ключу без удаления ссылок на внешние ключи - PullRequest
4 голосов
/ 10 февраля 2012

У меня есть таблица с первичным ключом, к которой я хотел бы добавить еще один столбец. Проблема в том, что когда я добавляю это, Sql Server удаляет все ссылки на внешние ключи в эту таблицу.

Есть ли способ исправить это? (или, может быть, даже инструмент, который рефакторинг это)?

Ответы [ 2 ]

5 голосов
/ 10 февраля 2012

Нечего "исправлять" - вы меняете PK, поэтому FK необходимо отбросить.

Что, по вашему мнению, должно произойти, если вы добавите поле в PK - все ссылки FK также добавят поле? Что если этого дополнительного поля не существует в других ваших таблицах? Они должны быть отброшены, а затем созданы заново, чтобы убедиться, что они даже являются действительными ссылками.

0 голосов
/ 11 февраля 2012

Нет способа обойти это.Внешние ключи должны быть переопределены.Если вы, например, добавляете столбец в свой PK, все существующие FK необходимо будет переопределить, чтобы они ссылались на новый набор столбцов, составляющих PK.Это означает, что вам придется добавлять столбцы в дочерние таблицы.

Я не уверен, есть ли какие-либо инструменты, которые автоматизируют этот процесс.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...