关于SQL Server 2008插入记录的疑问(五一过后赶着交老师作业呐,急啊)
学了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
,可依旧不行。
我有点没辙了,找不到原因,还望各路好汉能拔刀相助,定不胜感谢!日后小弟一定发奋学习,报效祖国!
------解决方案--------------------insert into dbo.subject(课程ID,课程名,学期,模块) values (1,'C#',1,20)
这样可以了
------解决方案--------------------SQL code
insert into subject select 'C#',1,20
自增字段是不需要你插入值的。
------解决方案--------------------
id没有设置为自动增加,要么就插入给id值,因为id是主键,必须要有
------解决方案--------------------
显式的话你要制定列名和开启IDENTITY_INSERT同时使用
------解决方案--------------------
在插入时显示指定标识值
SET IDENTITY_INSERT ON