SQL Server数据库表当要添加的那条数据含有id,且id是标识列和主键时,怎样添加数据?

example:
1、预期结果:
id name
1 你好
2 大家

2、实际结果:
id name
null 你好
null 大家

你的这个实际效果可以看出id并不是标识列,也不是主键,因为要是主键的话结果是不能为空的,你就插入不了数据
你建表的时候应为
create table tablename
(
id int identity(1,1) primary key,
name varchar(50)
)
其中identity(1,1) 为设定标识列, primary key 设定主键追问

嗯嗯,知道了!意思就是说如果id是标识列并且是主键的话,就不能这么这么直接插入数据了是吧?谢谢了!

追答

如果是标识列的话就不需要插入这列的数据,系统会自动的添加数据列的数据,但是如果是主键的话,插入的数据时不能为空的。但是又是主键又是标识列的时候是不需要为此列添加数据的,因为是标识列自增不为空也不唯一。所以说id是标识列并且是主键的话,就不能这么这么直接插入数据可以直接写 insert into table (name) values('大家') 出来的结果就是
id name
1 大家
这个样子的

追问

嗯嗯,是的!之前我也是这样写给我同学的,可是一直不行,现在知道了,原来是他的页面设计有问题,也就是说插入数据的那一列不应该包括id的!不过还是要谢谢你哦!

温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-04-03
id 列没有设置为标识列 和主键 因为 id列为null 主键是不能为null的 如果你添加了标识列的话 id列也是增加的。
第2个回答  2012-04-01
如果是 自增长的列:
insert into table (name) values('你好')

如果不是自增长的列:
insert into table (id,name) values(1,'你好')

另外,显然,你的id不是主键,主键列肯定不可为空啊!!!!!追问

是的!所以系统才会报错!就是这样写的:insert into table (name) values('你好');可是还会报错!

追答

id 是 自增长的列 吗 ???????????????????

追问

嗯嗯,是的!id是自动增长的,并且是主键!

相似回答