Столбец NUMCHAMBRE
, на который вы ссылаетесь в таблице CHAMBRE
, должен быть столбцом первичного ключа, то есть вы не можете просто ссылаться на какой-либо столбец.
Вы можете объявить его как первичный ключ, как этот:
alter table CHAMBRE add primary key (NUMCHAMBRE);
Столбцы первичного ключа должны иметь значение not null
, поэтому, если NUMCHAMBRE
обнуляем, приведенная выше команда не будет выполнена.
Обновление :
Исходя из вашего комментария ниже, определение вашей таблицы должно быть таким, то есть вам нужно сослаться на оба столбца первичного ключа:
CREATE TABLE RESERVATION (
NUMCHAMBRE int,
NUMHOTEL int not null Foreign Key REFERENCES HOTEL (NUMHOTEL),
NUMCLIENT int not null Foreign Key REFERENCES CLIENT (NUMCLIENT),
DATEARRIVE date not null,
DATEDEPART date,
PRIMARY KEY (NUMHOTEL,NUMCLIENT,DATEARRIVE),
Foreign Key (NUMCHAMBRE,NUMHOTEL) REFERENCES CHAMBRE (NUMCHAMBRE,NUMHOTEL)
);
Обратите внимание на дополнительные не нулевые ограничения, так как они будутнеобходимо для создания первичного ключа в этой таблице с использованием SQL Server.