У меня есть это назначение для начала SQL Server для добавления внешних ключей в эти таблицы. Последнее ALTER TABLE
команды всегда выдает ошибкуSQL Srver ошибка внешнего ключа
Там нет первичных или кандидатов ключей в ссылочной таблице «TCases», которые соответствуют списку столбцов реферирования ...
, и я действительно не могу понять почему он дает эту ошибку. Любое понимание очень ценится.
CREATE TABLE TCourtRooms
( intCourtRoomID INTEGER NOT NULL
,strCourtRoomNumber VARCHAR(50) NOT NULL
,strJudgeLastName VARCHAR(50) NOT NULL
,strJudgeFirstName VARCHAR(50) NOT NULL
,CONSTRAINT TCourtDockets_PK PRIMARY KEY (intCourtRoomID)
)
CREATE TABLE TCases
( intCourtRoomID INTEGER NOT NULL
,intCaseIndex INTEGER NOT NULL
,strCaseNumber VARCHAR(50) NOT NULL
,strDescription VARCHAR(50) NOT NULL
,CONSTRAINT TCases_PK PRIMARY KEY (intCourtRoomID, intCaseIndex)
)
CREATE TABLE TPersons
( intCourtRoomID INTEGER NOT NULL
,intCaseIndex INTEGER NOT NULL
,intPersonIndex INTEGER NOT NULL
,strLastName VARCHAR(50) NOT NULL
,strFirstName VARCHAR(50) NOT NULL
,strPersonRole VARCHAR(50) NOT NULL --Options are plaintiff or defendant
,CONSTRAINT TPlaintiffs_PK PRIMARY KEY (intCourtRoomID, intCaseIndex, intPersonIndex)
)
CREATE TABLE TLawyers
( intLawyerID INTEGER NOT NULL
,intCaseIndex INTEGER NOT NULL
,intPersonIndex INTEGER NOT NULL
,strLastName VARCHAR(50) NOT NULL
,strFirstName VARCHAR(50) NOT NULL
,strLawyerRole VARCHAR(50) NOT NULL --plaintiff or defendant
,CONSTRAINT TLawyers_PK PRIMARY KEY (intLawyerID, intCaseIndex, intPersonIndex)
,CONSTRAINT TLawyers_intLawyerID_strLawyerRole_UN UNIQUE (intLawyerID, strLawyerRole)
)
Задача 3.2 Определить и создать внешние ключи
-- Child Parent Column(s)
-- ----- ------ ---------
-- TCases TCourtRooms intCourtRoomID
-- TPersons TCases intCourtRoomID, intCaseIndex
-- TLawyers TCourtRooms
ALTER TABLE TCases
ADD CONSTRAINT TCases_TCourtRooms_FK
FOREIGN KEY (intCourtRoomID) REFERENCES TCourtRooms (intCourtRoomID)
ALTER TABLE TPersons
ADD CONSTRAINT TPersons_TCases_FK
FOREIGN KEY (intCourtRoomID, intCaseIndex) REFERENCES TCases (intCourtRoomID, intCaseIndex)
ALTER TABLE TLawyers
ADD CONSTRAINT TLawyers_TCases_FK
FOREIGN KEY (intCaseIndex) REFERENCES TCases (intCaseIndex)</code>