sqlserver向数据库插入数据的时候,自增张(标识列)列不允许为空,怎样插入该列数据?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了sqlserver向数据库插入数据的时候,自增张(标识列)列不允许为空,怎样插入该列数据?相关的知识,希望对你有一定的参考价值。
不对标识列显式赋值,想让插入的数据时标识列的值自动增加
只要设置了自动增长类型,在写sql语句时显式调用要插入的各字段名,不要写标识列就可以了,如下:insert into 表名 列名1,列名2... values(值1,值2...);追问
可是标识列是不能为空的,我插入数据的时候就没有插入标识列的值,但是提示插入数据的时候标识列的值为空错误
来自:求助得到的回答 参考技术A 手动sqlserver 自增ID插入指定数据
set identity_insert 表名 ON --允许对自增列Id插入指定数据 insert into table_name(Id,Name) values(1,‘test‘) set identity_insert 表名 OFF --关闭对自增列Id插入指定数据
注意:
1.set identity_insert只对当前会话生效。
2.set identity_insert 表名 ON 设置后,必须显示指定Id,否则插入错误。如insert into table_name values(‘111‘)将报错。
向自增ID插入指定值。 报错:“当 IDENTITY_INSERT 设置为 OFF 时,不能为表 ‘ ‘ 中的标识列插入显式值”。
插入语句未显示指定ID。 报错:“仅当使用了列列表并且 IDENTITY_INSERT 为 ON 时,才能为表‘ ‘中的标识列指定显式值”。
以上是关于sqlserver向数据库插入数据的时候,自增张(标识列)列不允许为空,怎样插入该列数据?的主要内容,如果未能解决你的问题,请参考以下文章