{"当 IDENTITY_INSERT 设置为 OFF 时,不能向表 'OrderList' 中的标识列插入显式值"}

对于这个异常可以从两个角度来处理:A:数据库执行语句  B:直接修改NHibernate中持久化类映射配置文件id节点

A数据库执行语句:

问题描述:当在数据库表主键设计为 (Orderid  int identity primary key),相对这个主键IDENTITY_INSERT默认设置为OFF,就是不能够显示插入主键id的值,例子如下:

insert into OrderList(id,OrderName) values(4520,'电子传票订单')

执行上面语句会提示一个错误:

服务器: 消息 544,级别 16,状态 1,行 1
当 IDENTITY_INSERT 设置为 OFF 时,不能向表 'OrderList' 中的标识列插入显式值。

其中关于主键一条记录,当我们想把这条记录的id设置成我们自定义的4520时出现上面的错误,如果我们添加一些设置,修改方法如下:

--允许将显式值插入表的标识列中 ON-允许  OFF-不允许
set identity_insert OrderList ON--打开

insert into OrderList(id,ordername,createdate)
values(4520,'set',getdate())

set identity_insert OrderList OFF--关闭

在执行这个插入语句时多了一个设置,该设置的语法是

--设置语法:

SET IDENTITY_INSERT [ database.[ owner.] ] { table } { ON | OFF } 
允许将显式值插入表的标识列中

参数说明:
database:针对数据库
table:针对某张表

ON:允许插入显式值插入 标识列
OFF:不允许

注意:


--问题注意

(1)任何时候,会话中只有一个表的 IDENTITY_INSERT 属性可以设置为 ON。如果某个表已将此属性设置为 ON,并且为另一个表发出了 SET IDENTITY_INSERT ON 语句,则 Microsoft® SQL Server™ 返回一个错误信息,指出 SET IDENTITY_INSERT 已设置为 ON 并报告此属性已设置为 ON 的表

(2)如果插入值大于表的当前标识值,则 SQL Server 自动将新插入值作为当前标识值使用

(3)SET IDENTITY_INSERT 的设置是在执行或运行时设置,而不是在分析时设置

上面执行语句中:把要执行的语句前后加上该设置,当然上面针对事一条记录插入操作,在这条记录插入操作后,如果再次插入数据时,没有启用该设置,Orderid主键列会根据上面自定义表示4520,自动增长到4521.这个操作很灵活关键看个人怎么利用.

B:修改配置文件

我们通过直接修改配置文件来处理这个问题,

出错时文件配置:

--hibernate持久化类配置 注意id中Generator子节点设置Class属性为:assigned自动增长
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2">
    <class name="TestHibernateExpre.Entities.OrderListModel,TestHibernateExpre" table="OrderList">
        <id name="Orderid" column="id" type="int">
            <!--id中参数的设置问:native/assigned/foreign/increment-->
            <generator class="assigned"></generator>
        </id>
    </class>

修改后文件配置:

--Hibernate中关于持久化类的配置  注意id下Generator子节点 class属性配置为native
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2">
    <class name="TestHibernateExpre.Entities.OrderListModel,TestHibernateExpre" table="OrderList">
        <id name="Orderid" column="id" type="int">
            <!--id中参数的设置问:native/assigned/foreign/increment-->
            <generator class="native"></generator>
        </id>
      </class>

转自:http://blog.sina.com.cn/s/blog_7eecafbc0100rax7.html

转自:http://www.cnblogs.com/chenkai/archive/2009/04/13/1434606.html

不能表中的标识列插入显示值相关推荐

  1. 基础SQL Server 操作问题——仅当使用了列表并且IDENTITY_INSERT为ON时,才能为表中的标识列制定显示值

    在表中插入多条字段 问题一:仅当使用了列表并且IDENTITY_INSERT为ON时,才能为表中的标识列制定显示值 解决方法: 执行: SET IDENTITY_INSERT 表名 ON    //设 ...

  2. 当 IDENTITY_INSERT 设置为 OFF 时,不能为表中的标识列插入显式值

    {"当 IDENTITY_INSERT 设置为 OFF 时,不能向表 'OrderList' 中的标识列插入显式值"} 对于这个异常可以从两个角度来处理:A:数据库执行语句  B: ...

  3. Navicat向sqlserver中插入数据时提示:当 IDENTITY_INSERT 设置为 OFF 时,不能向表中的标识列插入显式值

    场景 通过Navicat向sqlserver中插入一条数据时提示: 解决 这是因为在设计表时,将主键ID设置为自增约束,当插入数据或者执行插入语句时,如果包含这个 主键字段,就会提示错误. 打开数据库 ...

  4. 当 IDENTITY_INSERT 设置为 OFF 时,不能向表 中的标识列插入显式值错误的解决方法...

    一个主键.两个外键,把两个外键改为非空就行了. CREATE TABLE [dbo].[User_Compare]([Id] [int] IDENTITY(1,1) NOT NULL,[UserId] ...

  5. 当 IDENTITY_INSERT 设置为 OFF 时,不能为表 'WLog' 中的标识列插入显式值。

    在使用SQLServer数据库的时候,在进行数据报错过程中,出现如下异常: 当 IDENTITY_INSERT 设置为 OFF 时,不能为表 'WLog' 中的标识列插入显式值. 当前表没有设置关联关 ...

  6. 仅当使用了列的列表,并且 IDENTITY_INSERT 为 ON 时,才能在表中为标识列指定显式值问题...

    今天在处理数据库过程中碰到这样的问题在插入一条数据到表中 系统报这样的错误 仅当使用了列的列表,并且 IDENTITY_INSERT 为 ON 时,才能在表中为标识列指定显式值问题 表有一列是自增长的 ...

  7. hibernate执行插入时候报错: IDENTITY_INSERT 设置为 OFF 时,不能为表 ‘user‘ 中的标识列插入显式值

    插入时会报错 @Id // 使用的hibernate 的自动增量,没有用数据库的自动增量型 @GeneratedValue(generator = "increment") @Ge ...

  8. 当 IDENTITY_INSERT 设置为 OFF 时,不能为表 ‘xxx‘ 中的标识列插入显式值。 java解决方案

    原因是: 当数据库中的id字段设置为了主键并且是自动增长的,那么我们就不可以在insert into 语句中手动插入id值. 那么只要我们执行SET IDENTITY_INSERT xxx ON将其设 ...

  9. 当 IDENTITY_INSERT 设置为 OFF 时,不能为表 'Logger' 中的标识列插入显式值

    当使用mybatis插入数据时提示这个错误,原因是主键设置为自增长的,所以我们不需要再sql语句中再添加该主键字段了. 这个是很简单的,当时却怎么也不知道原因,看了网上很多例子,都不是很好,所以我写了 ...

最新文章

  1. oracle9201怎么安装,Solaris10上安装64位Oracle9201
  2. RSA加密解密在jsencrypt+c#的实现-博客园加密登录
  3. linux 远程执行shell 获取返回值
  4. 深度优先搜索和广度优先搜索的比较与分析
  5. STM32F1和STM32F4 区别 (安富莱整理)
  6. excel图表交互联动_如何使用高大上的多级联动交互式图表来分析人员结构?
  7. mysql sql优化与调优机制详解_MySQL之SQL优化详解(一)
  8. 树莓派连接7寸屏幕(7DP-CAPLCD)的配置笔记
  9. 省队集训Day3 tree
  10. 793. 阶乘函数后K个零 golang
  11. 人工智能方向改变,图灵测试是否已过时?
  12. robotframework接口测试初探1
  13. malloc函数的用法详解:
  14. gstreamer gst-launch 记录 原理
  15. Centos7中MySQL的安装并设置开机启动
  16. 宝宝泡药浴和直接吃药有什么区别吗?
  17. 关于电脑显示器分辨率只有两个选项1024×768和800×600的解决办法,本人电脑亲测可用
  18. 典型的NMOS开关驱动电路
  19. 登山赏红叶 爬山也要讲科学
  20. 自力更生给笔记本电脑换固态并重装系统

热门文章

  1. 开关电源如何布置-唯样商城
  2. 1-TDengine安装与初体验
  3. 【一起学d3.js】(一)
  4. (python3)kaggle上matplotlib显示不了中文(title是框,坐标也是框)完全解决.md
  5. 【软件测试】自动化测试战零基础教程——Python自动化从入门到实战(完结)
  6. 数据库字段设置默认值
  7. 输入压缩空间量是分区量吗_戴尔OptiPlex 3050 Windows10磁盘分区教程
  8. 以简书为例,简介尼尔森十大可用性原则
  9. Android--MediaPlayer(实现列表选歌,上一首,下一首,清空播放列表,搜索本地音乐文件)...
  10. 一、redis原理之string底层数据结构SDS