USE PUBS
GO
CREATE TABLE SPJ
(SNO CHAR(4),
 PNO CHAR(4),
 JNO CHAR(4),
 STY INT
 PRIMARY KEY(SNO,PNO,CNO),
 FOREIGN KEY(SNO),REFERENCES S(SNO),
 FOREIGN KEY(PNO),REFERENCES P(PNO),
 FOREIGN KEY(JNO),REFERENCES J(JNO),
);消息 102,级别 15,状态 1,第 7 行
',' 附近有语法错误。

解决方案 »

  1.   

    CREATE TABLE SPJ 
    (SNO CHAR(4), 
    PNO CHAR(4), 
    JNO CHAR(4), 
    STY INT 
    PRIMARY KEY(SNO,PNO,CNO), 
    FOREIGN KEY(SNO) REFERENCES S(SNO), 
    FOREIGN KEY(PNO) REFERENCES P(PNO), 
    FOREIGN KEY(JNO) REFERENCES J(JNO), 
    ); 
      

  2.   

    USE PUBS 
    GO 
    CREATE TABLE SPJ 
    (SNO CHAR(4), 
    PNO CHAR(4), 
    JNO CHAR(4), 
    STY INT  --这里的少了个逗号
    PRIMARY KEY(SNO,PNO,CNO), 
    FOREIGN KEY(SNO),REFERENCES S(SNO), 
    FOREIGN KEY(PNO),REFERENCES P(PNO), 
    FOREIGN KEY(JNO),REFERENCES J(JNO),--这里多了个逗号
    ); 
      

  3.   

    USE PUBS 
    GO 
    CREATE TABLE SPJ 
    (SNO CHAR(4), 
    PNO CHAR(4), 
    JNO CHAR(4), 
    STY INT 
    PRIMARY KEY(SNO,PNO,CNO), 
    FOREIGN KEY(SNO) REFERENCES S(SNO), 
    FOREIGN KEY(PNO) REFERENCES P(PNO), 
    FOREIGN KEY(JNO) REFERENCES J(JNO)
    )
      

  4.   


    CREATE TABLE SPJ 
    (SNO CHAR(4), 
    PNO CHAR(4), 
    JNO CHAR(4), 
    STY INT
    PRIMARY KEY(SNO,PNO,JNO), --应该是JNO吧
    FOREIGN KEY(SNO) REFERENCES S(SNO), 
    FOREIGN KEY(PNO) REFERENCES P(PNO), 
    FOREIGN KEY(JNO) REFERENCES J(JNO)
    ); 
      

  5.   

    PRIMARY KEY(SNO,PNO,CNO)
    cno这个字段并不存在
      

  6.   

    改为JNO才对!但是也还是报错!
      

  7.   

    楼主检查一下是否有 中文输入法的空格
    我用你的代码就可以呀,应该是那个逗号附近有 中文输入法下的空格CREATE TABLE SPJ 
    (SNO CHAR(4), 
    PNO CHAR(4), 
    JNO CHAR(4), 
    STY INT 
    PRIMARY KEY(SNO,PNO,JNO), 
    FOREIGN KEY(SNO) REFERENCES S(SNO), 
    FOREIGN KEY(PNO) REFERENCES P(PNO), 
    FOREIGN KEY(JNO) REFERENCES J(JNO), 
    ); 
    -------------------------
    命令已成功完成。
      

  8.   

    CREATE TABLE SPJ 
    (SNO CHAR(4), 
    PNO CHAR(4), 
    JNO CHAR(4), 
    STY INT 
    PRIMARY KEY(SNO,PNO,JNO), 
    FOREIGN KEY(SNO) REFERENCES S(SNO), 
    FOREIGN KEY(PNO) REFERENCES P(PNO), 
    FOREIGN KEY(JNO) REFERENCES J(JNO), 
    ); 
    -------------------------
    命令已成功完成。
    为什么我复制进去,执行就这样出错了呢?消息 1753,级别 16,状态 0,第 1 行
    列 'J.JNO' 的长度与外键 'FK__SPJ__JNO__5812160E' 中的引用列 'SPJ.JNO' 的长度不同。参与构造外键关系的列必须定义为具有同一长度。
    消息 1750,级别 16,状态 0,第 1 行
    无法创建约束。请参阅前面的错误消息。
      

  9.   

    CREATE TABLE SPJ 
    (SNO CHAR(4), 
    PNO CHAR(4), 
    JNO CHAR(4), 
    STY INT 
    PRIMARY KEY(SNO,PNO,JNO), 
    FOREIGN KEY(SNO) REFERENCES S(SNO),---这里没有逗号 你看看你的有! 
    FOREIGN KEY(PNO) REFERENCES P(PNO), 
    FOREIGN KEY(JNO) REFERENCES J(JNO), 
    );明显你那里对了三个逗号!
      

  10.   


    J表的JNO字段与SPJ表的JNO字段长度要一样
      

  11.   

    CREATE TABLE SPJ 
    (SNO CHAR(4), 
    PNO CHAR(4), 
    JNO CHAR(4), 
    STY INT ,--这里少个逗号
    PRIMARY KEY(SNO,PNO,CNO), 
    FOREIGN KEY(SNO) REFERENCES S(SNO), 
    FOREIGN KEY(PNO) REFERENCES P(PNO), 
    FOREIGN KEY(JNO) REFERENCES J(JNO), 
    );