仅当使用了列列表并且 IDENTITY_INSERT 为 ON 时,才能为表

来源:这里教程网 时间:2026-03-02 11:17:29 作者:

一、问题现象     仅当使用了列列表并且 IDENTITY_INSERT 为 ON 时,才能为表'xxx'中的标识列指定显式值 

二、原因解析
    如果想要给标识列显示的添加数据,需要设置标识列可以显示添加数据。 

三、解决方法 可以使用如下的方法: set identity_insert  Table_Name on--设置标识列可以显示添加数据
insert into Table_Name(PCId,PCUse,PCNote) values(100,1,'aaa')
set identity_insert Table_Name off--设置标识列不可以显示添加数据 
四、总结 注意1: 要想显示的为某表的标识列显示添加数据,在insert语句中一定要在表后面显示要添加的字段,即使是所有字段,也不能省略。 如:PCInfo(PCId,PCUse,PCNote),如果只写PCInfo仍然不能为PCId显示的添加数据。 
注意2:插入完数据要将identity_insert设置为OFF。

若不关闭,则再次添加数据时,无法自增长,提示错误信息: IDENTITY_INSERT 设置为ON 或某个复制用户向NOT FOR REPLICATION标识列中插入内容时,必须为表'login'中的标识列指定显式值。

相关推荐