不能表中的标识列插入显示值
{"当 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
不能表中的标识列插入显示值相关推荐
- 基础SQL Server 操作问题——仅当使用了列表并且IDENTITY_INSERT为ON时,才能为表中的标识列制定显示值
在表中插入多条字段 问题一:仅当使用了列表并且IDENTITY_INSERT为ON时,才能为表中的标识列制定显示值 解决方法: 执行: SET IDENTITY_INSERT 表名 ON //设 ...
- 当 IDENTITY_INSERT 设置为 OFF 时,不能为表中的标识列插入显式值
{"当 IDENTITY_INSERT 设置为 OFF 时,不能向表 'OrderList' 中的标识列插入显式值"} 对于这个异常可以从两个角度来处理:A:数据库执行语句 B: ...
- Navicat向sqlserver中插入数据时提示:当 IDENTITY_INSERT 设置为 OFF 时,不能向表中的标识列插入显式值
场景 通过Navicat向sqlserver中插入一条数据时提示: 解决 这是因为在设计表时,将主键ID设置为自增约束,当插入数据或者执行插入语句时,如果包含这个 主键字段,就会提示错误. 打开数据库 ...
- 当 IDENTITY_INSERT 设置为 OFF 时,不能向表 中的标识列插入显式值错误的解决方法...
一个主键.两个外键,把两个外键改为非空就行了. CREATE TABLE [dbo].[User_Compare]([Id] [int] IDENTITY(1,1) NOT NULL,[UserId] ...
- 当 IDENTITY_INSERT 设置为 OFF 时,不能为表 'WLog' 中的标识列插入显式值。
在使用SQLServer数据库的时候,在进行数据报错过程中,出现如下异常: 当 IDENTITY_INSERT 设置为 OFF 时,不能为表 'WLog' 中的标识列插入显式值. 当前表没有设置关联关 ...
- 仅当使用了列的列表,并且 IDENTITY_INSERT 为 ON 时,才能在表中为标识列指定显式值问题...
今天在处理数据库过程中碰到这样的问题在插入一条数据到表中 系统报这样的错误 仅当使用了列的列表,并且 IDENTITY_INSERT 为 ON 时,才能在表中为标识列指定显式值问题 表有一列是自增长的 ...
- hibernate执行插入时候报错: IDENTITY_INSERT 设置为 OFF 时,不能为表 ‘user‘ 中的标识列插入显式值
插入时会报错 @Id // 使用的hibernate 的自动增量,没有用数据库的自动增量型 @GeneratedValue(generator = "increment") @Ge ...
- 当 IDENTITY_INSERT 设置为 OFF 时,不能为表 ‘xxx‘ 中的标识列插入显式值。 java解决方案
原因是: 当数据库中的id字段设置为了主键并且是自动增长的,那么我们就不可以在insert into 语句中手动插入id值. 那么只要我们执行SET IDENTITY_INSERT xxx ON将其设 ...
- 当 IDENTITY_INSERT 设置为 OFF 时,不能为表 'Logger' 中的标识列插入显式值
当使用mybatis插入数据时提示这个错误,原因是主键设置为自增长的,所以我们不需要再sql语句中再添加该主键字段了. 这个是很简单的,当时却怎么也不知道原因,看了网上很多例子,都不是很好,所以我写了 ...
最新文章
- oracle9201怎么安装,Solaris10上安装64位Oracle9201
- RSA加密解密在jsencrypt+c#的实现-博客园加密登录
- linux 远程执行shell 获取返回值
- 深度优先搜索和广度优先搜索的比较与分析
- STM32F1和STM32F4 区别 (安富莱整理)
- excel图表交互联动_如何使用高大上的多级联动交互式图表来分析人员结构?
- mysql sql优化与调优机制详解_MySQL之SQL优化详解(一)
- 树莓派连接7寸屏幕(7DP-CAPLCD)的配置笔记
- 省队集训Day3 tree
- 793. 阶乘函数后K个零 golang
- 人工智能方向改变,图灵测试是否已过时?
- robotframework接口测试初探1
- malloc函数的用法详解:
- gstreamer gst-launch 记录 原理
- Centos7中MySQL的安装并设置开机启动
- 宝宝泡药浴和直接吃药有什么区别吗?
- 关于电脑显示器分辨率只有两个选项1024×768和800×600的解决办法,本人电脑亲测可用
- 典型的NMOS开关驱动电路
- 登山赏红叶 爬山也要讲科学
- 自力更生给笔记本电脑换固态并重装系统
热门文章
- 开关电源如何布置-唯样商城
- 1-TDengine安装与初体验
- 【一起学d3.js】(一)
- (python3)kaggle上matplotlib显示不了中文(title是框,坐标也是框)完全解决.md
- 【软件测试】自动化测试战零基础教程——Python自动化从入门到实战(完结)
- 数据库字段设置默认值
- 输入压缩空间量是分区量吗_戴尔OptiPlex 3050 Windows10磁盘分区教程
- 以简书为例,简介尼尔森十大可用性原则
- Android--MediaPlayer(实现列表选歌,上一首,下一首,清空播放列表,搜索本地音乐文件)...
- 一、redis原理之string底层数据结构SDS