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向数据库插入数据的时候,自增张(标识列)列不允许为空,怎样插入该列数据?的主要内容,如果未能解决你的问题,请参考以下文章

SQL Server 2000中如何设置自增主键?

sqlserver 自增ID插入指定数据

SQL 如何在自增列插入指定数据

SQL 如何在自增列插入指定数据

@@ITENTITY

sql的自增列如何重置