create table students
(stuId bigint identity(11111111,1) primary key,
stuName varchar(20) not null,
pwd  varchar(20) not null)
go
create table classes
(classId varchar(8) primary key,
className varchar(20) not null,
semester varchar(20) not null)
go
create table grades
(stuId bigint identity(11111111,1) primary key,
stuName varchar(20) not null,
classId varchar(8) primary key,
className varchar(20) not null,
semester varchar(20) not null,
pscores int,
escores int,
foreign key grades(stuId) references classes(classId)
foreign key grades(classId) references classes(classId))
go
建第三个表老是提示说
消息 102,级别 15,状态 1,第 9 行
'grades' 附近有语法错误。
我楞是没看出哪错了.求解.

解决方案 »

  1.   


    create table grades
    (stuId bigint identity(11111111,1) primary key,
    stuName varchar(20) not null,
    classId varchar(8) primary key,
    className varchar(20) not null,
    semester varchar(20) not null,
    pscores int,
    escores int,
    foreign key stuId references classes(classId)--这样就好了
    foreign key grades(classId) references classes(classId))
    go
      

  2.   

    create table grades
    (stuId bigint identity(11111111,1) primary key,
    stuName varchar(20) not null,
    classId varchar(8) primary key,
    className varchar(20) not null,
    semester varchar(20) not null,
    pscores int,
    escores int,
    foreign key classIdreferences classes(classId)--这样就好了
    foreign key grades(classId) references classes(classId))
    go貌似你写的有错,应该是classId 的外键吧
      

  3.   


    create table grades
    (stuId bigint identity(11111111,1) primary key,
    stuName varchar(20) not null,
    classId varchar(8) primary key,
    className varchar(20) not null,
    semester varchar(20) not null,
    pscores int,
    escores int,
    foreign key (stuId) references classes(classId)--,
    --foreign key (classId) references classes(classId))
    go不要前面的表名字,而且你这一个表怎么能有两个外键呢?
      

  4.   

    第一个是stuId,我打的时候打错了- -.我这样建还是报错.
    create table grades
    (stuId bigint identity(11111111,1) primary key,
    stuName varchar(20) not null,
    classId varchar(8) primary key,
    className varchar(20) not null,
    semester varchar(20) not null,
    pscores int,
    escores int,
    foreign key stuId references classes(stuId)
    foreign key grades(classId) references classes(classId))
      

  5.   

    我打错了.应该是stuIdcreate table grades
    (stuId bigint identity(11111111,1) primary key,
    stuName varchar(20) not null,
    classId varchar(8) primary key,className varchar(20) not null,
    semester varchar(20) not null,
    pscores int,
    escores int,
    foreign key (stuId) references students(stuId),
    foreign key (classId) references classes(classId))这样报了个
    消息 8110,级别 16,状态 0,第 1 行
    无法将多个 PRIMARY KEY 约束添加到表 'grades'。
    我是想设置一个复合主键.
      

  6.   


    CREATE TABLE [grades](
    [stuId] [bigint] IDENTITY(11111111,1) NOT NULL,
    [stuName] [varchar](20) NOT NULL,
    [classId] [varchar](8) NOT NULL,
    [className] [varchar](20) NOT NULL,
    [semester] [varchar](20) NOT NULL,
    [pscores] [int] NULL,
    [escores] [int] NULL,
     CONSTRAINT [PK__grades__AEC] PRIMARY KEY CLUSTERED 
    (
    [stuId] ASC,
    [classId] ASC
    )
      

  7.   

    ---或者这样create table grades
    (stuId bigint identity(11111111,1),
    stuName varchar(20) not null,
    classId varchar(8) ,
    className varchar(20) not null,
    semester varchar(20) not null,
    pscores int,
    escores int,
    foreign key (stuId) references students(stuId),
    foreign key (classId) references classes(classId),
     CONSTRAINT [PK__grades__AEC] PRIMARY KEY CLUSTERED 
    (
    [stuId] ASC,
    [classId] ASC
    ))
      

  8.   

    create table grades
    (stuId bigint identity(11111111,1),
    stuName varchar(20) not null,
    classId varchar(8) ,
    className varchar(20) not null,
    semester varchar(20) not null,
    pscores int,
    escores int,
    foreign key (stuId) references students(stuId),
    foreign key (classId) references classes(classId),
    constraint gradeskey primary key (stuId,classId))gradeskey 为创建主键名称,随便取。
      

  9.   


    create table students
    (
    stuId bigint identity(11111111,1) primary key,
    stuName varchar(20) not null,
    pwd varchar(20) not null)
    go
    create table classes
    (
    classId varchar(8) primary key,
    className varchar(20) not null,
    semester varchar(20) not null)
    go
    create table grades
    (
    Id int identity(1,1),
    stuId bigint,
    stuName varchar(20) not null,
    classId varchar(8),
    className varchar(20) not null,
    semester varchar(20) not null,
    pscores int,
    escores int,
    constraint stuId_fk foreign key (stuId) references students(stuId),
    constraint classId_fk foreign key (classId) references classes(classId)
    )
    go
      

  10.   

    在问一下.
    我在students表插入一行
    再在clases表插入一行
    再在grades表插入一行 insert students(stuName,pwd) values('amy','hello')
     go
     
     insert classes(classId,className,semester) values('12345678','多媒体技术','200809-200901')
     go 
     insert grades(stuName,classId,className,semester,pscores,escores) values('amy','12345678','多媒体技术','200809-200901','88','80')插第三条的时候报错.
    消息 547,级别 16,状态 0,第 1 行
    INSERT 语句与 FOREIGN KEY 约束"FK__grades__stuId__3C69FB99"冲突。该冲突发生于数据库"users",表"dbo.students", column 'stuId'。
    语句已终止。我students表和classes表已经有这个相应记录了.
      

  11.   

    在问一下.
    我在students表插入一行
    再在clases表插入一行
    再在grades表插入一行 insert students(stuName,pwd) values('amy','hello')
     go
     
     insert classes(classId,className,semester) values('12345678','多媒体技术','200809-200901')
     go 
     insert grades(stuName,classId,className,semester,pscores,escores) values('amy','12345678','多媒体技术','200809-200901','88','80')插第三条的时候报错.
    消息 547,级别 16,状态 0,第 1 行
    INSERT 语句与 FOREIGN KEY 约束"FK__grades__stuId__3C69FB99"冲突。该冲突发生于数据库"users",表"dbo.students", column 'stuId'。
    语句已终止。我students表和classes表已经有这个相应记录了.
      

  12.   

    在问一下.
    我在students表插入一行
    再在clases表插入一行
    再在grades表插入一行 insert students(stuName,pwd) values('amy','hello')
     go
     
     insert classes(classId,className,semester) values('12345678','多媒体技术','200809-200901')
     go 
     insert grades(stuName,classId,className,semester,pscores,escores) values('amy','12345678','多媒体技术','200809-200901','88','80')插第三条的时候报错.
    消息 547,级别 16,状态 0,第 1 行
    INSERT 语句与 FOREIGN KEY 约束"FK__grades__stuId__3C69FB99"冲突。该冲突发生于数据库"users",表"dbo.students", column 'stuId'。
    语句已终止。我students表和classes表已经有这个相应记录了.