/*房间表*/
CREATE TABLE FJ
(
    FNO CHAR(10) NOT NULL,/*房间号码*/
    FPROP CHAR(10) NOT NULL,/*房间属性*/
    FPRI  INT, /*房间价格*/
    PRIMARY KEY(FNO,FPROP)
)
GO
/*用户信息,住户登记时候调用该表*/
CREATE TABLE YHXX
(
    FNO CHAR(10) NOT NULL,/*房间号码*/
    IDNO CHAR(20) NOT NULL,/*身份证号码*/
    DPRI INT,/*房价*/
    PRIMARY KEY (FNO),/*主码是房间号码*/
    FOREIGN KEY (FNO) REFERENCES FJ(FNO)/*房间号码参照FJ的房间号码*/
)
GO
/*登陆信息*/
CREATE TABLE DLXX
(
    EMNO  CHAR(10) NOT NULL,/*员工号*/
    PAWORD  CHAR(20) NOT NULL,/*密码*/
    PRIMARY KEY  (EMNO)/*员工号是主码*/
)
GO
/*入住表*/
CREATE TABLE RZ
(
    EMNO CHAR(10)  NOT NULL/*员工号,处理这张表的员工的号码*/,
    FNO CHAR(10)  NOT NULL/*房间号*/,
    FPRI INT,/*房间价格*/
    DISCOUNT SMALLINT CHECK(DISCOUNT <= 100 AND DISCOUNT >= 0),/*折扣,小整形,是一个0-100之间的整数*/
    DAYS SMALLINT,
    PRIMARY KEY  (EMNO,FNO),
    FOREIGN KEY (FNO) REFERENCES FJ(FNO),/*房间号还是参照FJ表中的房间号码*/
    FOREIGN KEY (FPRI) REFERENCES FJ(FPRI)/*价格也是参照FJ表中的价格*/
)
GO
出现的问题是服务器: 
消息 1776,级别 16,状态 1,行 2
在被引用表 'FJ' 中没有与外键 'FK__YHXX__FNO__44FF419A' 的引用列的列表匹配的主键或候选键。
服务器: 消息 1750,级别 16,状态 1,行 2
未能创建约束。请参阅前面的错误信息。
服务器: 消息 1776,级别 16,状态 1,行 2
在被引用表 'FJ' 中没有与外键 'FK__RZ__FNO__4AB81AF0' 的引用列的列表匹配的主键或候选键。
服务器: 消息 1750,级别 16,状态 1,行 2
未能创建约束。请参阅前面的错误信息。
请问大家要怎么解决啊??

解决方案 »

  1.   

    表 FJ 的主键时个复合 主键
    PRIMARY   KEY(FNO,FPROP) 
    表  YHXX 
     是你的外键 只是与其中一个进行 关联
    FOREIGN   KEY   (FNO)   REFERENCES   FJ(FNO)表 RZ 是与主键的列信息不对      FOREIGN   KEY   (FNO,fpri)   REFERENCES   FJ(FNO,fpri),/*房间号还是参照FJ表中的房间号码*/ 
        FOREIGN   KEY   (FPRI)   REFERENCES   FJ(FPRI)  
      

  2.   

    这样不行了,FJ 是复合主健,不能这样用。。
    在FJ定义一个唯一健