一、问题现象
仅当使用了列列表并且 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'中的标识列指定显式值。
