学了SQL半学期了,老师布置个项目作业,但由于...学的相当粗糙,很多不会,就是一初级菜鸟的我还望多多高人指点啊!
    是这样,做考试系统,我创建了三张表,分别存放“考生信息,科目信息,题库”,其中科目信息:
create table subject --考试科目
(
课程ID int primary key identity,--课程ID,主键
课程名 char(20) not null,--课程名
学期 int not null,--所属学期
模块 int not null,--所属模块
)
  创建是没什么问题,可再享里面插入数据记录时,就报错了,报错内容如下:
消息 8101,级别 16,状态 1,第 1 行
仅当使用了列列表并且 IDENTITY_INSERT 为 ON 时,才能为表'subject'中的标识列指定显式值。
然后我添了一句话: SET   IDENTITY_INSERT subject ON
,可依旧不行。
我有点没辙了,找不到原因,还望各路好汉能拔刀相助,定不胜感谢!日后小弟一定发奋学习,报效祖国!

解决方案 »

  1.   

    哦,忘了说了,我插入语句内容是:insert into subject values('C#',1,1,20);
    insert into subject values('JAVA',2,1,19);
    insert into subject values('XML',3,2,26);
    insert into subject values('SQL',4,2,20);起初,我认为是插入内容的顺序有问题,就改了下:
    insert into subject values(1,'C#',1,20);
    可还是不行...
      

  2.   


    insert into dbo.subject(课程ID,课程名,学期,模块) values (1,'C#',1,20) 这样可以了
      

  3.   


    insert into subject select 'C#',1,20 自增字段是不需要你插入值的。
      

  4.   

    id没有设置为自动增加,要么就插入给id值,因为id是主键,必须要有
      

  5.   

    显式的话你要制定列名和开启IDENTITY_INSERT同时使用
      

  6.   

    在插入时显示指定标识值
    SET IDENTITY_INSERT ON