ITPub博客

首页 > 数据库 > SQL Server > 仅当使用了列列表并且 IDENTITY_INSERT 为 ON 时,才能为表

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

原创 SQL Server 作者:TaihangMeng 时间:2018-01-18 11:35:11 0 删除 编辑

一、问题现象

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

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/30776559/viewspace-2150276/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2016-01-07

  • 博文量
    101
  • 访问量
    147088