这是我编写 SQLSever 表达式时的问题:
引用表 'Room' 中没有与外键 'FK_ Booking _RoomNo__4E298478'
中的引用列列表匹配的主键或候选键。
还有我的程序的一些快照:
CREATE TABLE Booking(
HotelNo NVARCHAR(4) not null,
GuestNo SMALLINT,
DateFrom DATETIME not null,
DateTo DATETIME,
RoomNo SMALLINT not null,
PRIMARY KEY (HotelNo,DateFrom,RoomNo),
FOREIGN KEY (HotelNo) REFERENCES Hotel(HotelNo),
FOREIGN KEY (GuestNo) REFERENCES Guest(GuestNo),
FOREIGN KEY (RoomNo) REFERENCES Room(RoomNo)); <---trouble on this line
CREATE TABLE Room(
RoomNo SMALLINT not null,
HotelNo NVARCHAR(4) not null,
RoomType NVARCHAR(25),
Price DECIMAL(5,2),
PRIMARY KEY (RoomNo,HotelNo),
CONSTRAINT fk_Room FOREIGN KEY (HotelNo) REFERENCES Hotel(HotelNo));
这是旅馆的桌子
CREATE TABLE Hotel(
HotelNo NVARCHAR(4) not null,
HotelName NVARCHAR(25),
City NVARCHAR(25),
PRIMARY KEY (HotelNo) );
我尝试对这个问题进行一些搜索,它说这可能是由于表 Room 中没有定义主键导致的,但如上所述,它已定义。
有人可以帮我解决这个问题吗?
先感谢您。