Создать ограничение внешнего ключа sql - PullRequest
0 голосов
/ 14 сентября 2010

Я хочу создать ограничение в таком состоянии, как показано ниже

Code.CodeTable ( CodeID smallint, CategoryID smallint,....)  --> Parent Table
Admin.Document( DocumentTypeID smallint,.....)  --> Child Table

FK будет картой Admin.Document.DocumentTypeID с Code.CodeTable.CodeID

Я хочу иметь ограничениеэто только проверка Code.CodeTable.CodeID, что только Code.CodeTable.CategoryID = 15.

1 Ответ

4 голосов
/ 14 сентября 2010

Как уже сказал OMG Ponies - вы не можете создавать ограничения fk для разных баз данных, но если это просто нечетные имена таблиц с точками в них (крайне не рекомендуется!, Поскольку SQL Server уже использует пунктирную схему: (база данных). (Схема).(имя объекта) и, следовательно, наличие точек в именах таблиц просто вызывает проблемы в какой-то момент ....), тогда вы сможете создать свое ограничение следующим образом:

ALTER TABLE [Admin.Document]
  ADD CONSTRAINT FK_AdminDocument_CodeTableCodeID
  FOREIGN KEY(DocumentTypeID) REFERENCES [Code.CodeTable](CodeID)

Поскольку у вас естьточки в именах таблиц, вам необходимо заключить эти имена в квадратные скобки [].

По сути, вам нужно изменить дочернюю таблицу и сообщить SQL Server, какой столбец в этой дочерней таблице относится к какой родительской таблице и столбцу в родительской таблице.

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