当 IDENTITY_INSERT 设置为 OFF 时,不能为表中的标识列插入显式值
{"当 IDENTITY_INSERT 设置为 OFF 时,不能向表 'OrderList' 中的标识列插入显式值"}
对于这个异常可以从两个角度来处理:A:数据库执行语句 B:直接修改NHibernate中持久化类映射配置文件id节点
A数据库执行语句:
问题描述:当在数据库表主键设计为 (Orderid int identity primary key),相对这个主键IDENTITY_INSERT默认设置为OFF,就是不能够显示插入主键id的值,例子如下:
执行上面语句会提示一个错误:
其中关于主键一条记录,当我们想把这条记录的id设置成我们自定义的4520时出现上面的错误,如果我们添加一些设置,修改方法如下:
在执行这个插入语句时多了一个设置,该设置的语法是
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:修改配置文件
我们通过直接修改配置文件来处理这个问题,
出错时文件配置:
修改后文件配置:
当 IDENTITY_INSERT 设置为 OFF 时,不能为表中的标识列插入显式值相关推荐
- 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 时,才能在表中为标识列指定显式值问题 表有一列是自增长的 ...
- 当 IDENTITY_INSERT 设置为 OFF 时,不能为表 ‘xxx‘ 中的标识列插入显式值。 java解决方案
原因是: 当数据库中的id字段设置为了主键并且是自动增长的,那么我们就不可以在insert into 语句中手动插入id值. 那么只要我们执行SET IDENTITY_INSERT xxx ON将其设 ...
- hibernate执行插入时候报错: IDENTITY_INSERT 设置为 OFF 时,不能为表 ‘user‘ 中的标识列插入显式值
插入时会报错 @Id // 使用的hibernate 的自动增量,没有用数据库的自动增量型 @GeneratedValue(generator = "increment") @Ge ...
- 当 IDENTITY_INSERT 设置为 OFF 时,不能为表 'Logger' 中的标识列插入显式值
当使用mybatis插入数据时提示这个错误,原因是主键设置为自增长的,所以我们不需要再sql语句中再添加该主键字段了. 这个是很简单的,当时却怎么也不知道原因,看了网上很多例子,都不是很好,所以我写了 ...
- sqlserver 插入数据时异常,仅当使用了列列表并且 IDENTITY_INSERT 为 ON 时,才能为表'XXXXX.dbo.XXXXXXXXX'中的标识列指定显式值。...
INSERT INTO XXXXXXXXX.dbo.XXXXXXXXX select * from XXXXXXXXX 仅当使用了列列表并且 IDENTITY_INSERT 为 ON 时,才能为表'X ...
- 消息 8101,级别 16,状态 1,第 1 行仅当使用了列列表并且 IDENTITY_INSERT 为 ON 时,才能为表'CUSTOMER_TBL'中的标识列指定显式值。...
像这样的问题怎么解决呢? 问题分析: 意思是你的主键是自动编号类型的,所以不能向该列插入数据. 解决办法: 执行 语句 :SET IDENTITY_INSERT CUSTOMER_TBL ON 然后在 ...
最新文章
- 磁盘加密软件TrueCrypt知识大全(二)之创建文件型加密卷
- 英特尔是 Chrome OS 代码的第二大贡献者
- 前端图片有时候能显示有时候不显示_如何自动搞定全站图片的alt属性?
- Android NDK
- reset.css页面样式初始化
- 2012三年大专计算机试题医学,计算机原理2012年4月真题(02384)
- 单元和集成测试的代码覆盖率
- 和平精英android怎么写符号,和平精英名字符号大全 可用的名字特殊符号有哪些...
- CEdit CRichEdit 使用技巧(转)
- iOS 音频播放时听筒及扬声器切换
- linux下分析prn文件,Linux文件的管理
- 安卓刷机及刷机包制作教程
- 利用GDAL根据栅格影像DN值实现颜色渲染
- 邓奶奶坐轮椅泪别袁爷爷
- 电脑打开网络没有WiFi列表
- “统计套利”是怎么玩的?可以稳定获利吗?
- OSPF网络类型以及不规则区域练习
- 【Verilog】一、Verilog概述
- 《沈剑架构师训练营》第2章 - 接入层架构
- css 手抓,CSS 像素画 - 手和箭头
热门文章
- OpenGL 调试Debugging
- C语言实现希尔排序shell sort算法之二(附完整源码)
- QT的QImage类的使用
- QT的QDesignerContainerExtension类的使用
- php 反向截取,反向PHP功能
- Docker容器间通讯,直接路由方式实现网络通讯
- shell编程--基本格式,基本语法,运算符,expr,(()),$[]
- Git环境搭建与基本使用方法 (转自http://blog.csdn.net/fireelement/article/details/9618363)
- STL之multiset中equal_range,multimap中的equal_range,bitset容器,string字符串操作,lambda表达式
- 系统架构设计师考试大纲