В принципе, у меня есть «Бизнес», которому принадлежат почтовые индексы, которые он обслуживает. Предположим также, что у меня есть другая реляционная таблица, которая устанавливает плату.Убедитесь, что внешний ключ внешнего ключа соответствует внешнему ключу базы
CREATE TABLE [dbo].[BusinessPostalCodes]
(
[BusinessPostalCodeId] INT IDENTITY (1, 1) NOT NULL,
[BusinessId] INT NOT NULL,
[PostalCode] VARCHAR (10) NOT NULL
)
CREATE TABLE [dbo].[BusinessPostalCodeFees]
(
[BusinessId] INT NOT NULL,
[BusinessProfileFeeTypeId] INT NOT NULL,
[BusinessPostalCodeId] INT NOT NULL,
[Fee] SMALLMONEY NULL
)
Я хочу знать, если это возможно, чтобы создать внешний ключ (или что-то) на BusinessPostalCodeFees
, что гарантирует, что соответствующий BusinessId
из BusinessPostalCodes
является такой же, как BusinessId
из BusinessPostalCodeFees
.
Я понимаю, что могу полностью удалить BusinessId
, но я бы предпочел сохранить эту колонку и иметь способ гарантировать, что они будут одинаковыми. Я могу что-нибудь сделать?
написать логику триггера и откат транзакции, которая нарушает ваше правило – techspider
@techspider Спасибо за подсказку, но я думаю, что проверенное ограничение работает очень хорошо. –