SQL IDENTITY_INSERT作用案例详解


Posted in MySQL onAugust 23, 2021

一般情况下,当数据表中,莫一列被设置成了标识列之后,是无法向标识列中手动的去插入标识列的显示值。但是,可以通过设置SET IDENTITY_INSERT属性来实现对标识列中显示值的手动插入。

写法:

  1. SET IDENTITY_INSERT 表名 ON :表示开启对标识列显示值插入模式,允许对标识列显示值进行手动插入数据。
  2. SET IDENTITY_INSERT 表名 OFF:表示关闭对标识列显示值的插入操作,标识列不允许手动插入显示值。

注意:IDENTITY_INSERT的开启ON和关闭OFF是成对出现的,所以,在执行完手动插入操作之后,记得一定要把IDENTITY_INSERT设置为OFF,否则下次的自动插入数据会插入失败。

例如:

创建一张表b1,b_id为标识列,设置为唯一标识,从1开始,每次插入新数据时,值都递增1,不允许为空:

CREATE table b1
(
b_id int identity(1,1) primary key not null,   
b_name varchar(20) null
)

当把表b1中b_id这一列设置为唯一标识列的时候,IDENTITY_INSERT属性的值就默认被设置为了OFF了。标识列b_id列不允许手动去插入显示值,只能由系统自动按照排顺序去插入显示的值。

1.当IDENTITY_INSERT 为OFF时,往表b1中插入2条数据,往标识列中手动插入显示值:

 代码1:

insert into b1(b_id,b_name) values(1,'莉莉')
insert into b1(b_id,b_name) values(2,'阿呆')

插入结果:

SQL IDENTITY_INSERT作用案例详解

代码2:

insert into b1(b_name) values('莉莉')
insert into b1(b_name) values('阿呆')

插入结果:

SQL IDENTITY_INSERT作用案例详解

说明:当把IDENTITY_INSERT设置为OFF时,标识列是不允许手动插入显示值的,只能有系统去自动插入标识列的显示值。

2.当IDENTITY_INSERT 为ON时,往表b1中插入2条数据,往标识列中手动插入显示值:

代码1:

set identity_insert b1 on --开启对标识列的插入模式,标识列允许手动插入显示值
insert into b1(b_id,b_name) values(8,'小白')  --手动去插入标识列b_id的显示值为8
insert into b1(b_id,b_name) values(9,'小黑')
set identity_insert b1 off --关闭对标识列的插入操作,标识列不允许手动插入显示值

插入结果:

SQL IDENTITY_INSERT作用案例详解

代码2:

set identity_insert b1 on --开启对标识列的插入模式,标识列允许手动插入显示值
insert into b1(b_name) values('小胖')  --手动去插入标识列b_id的显示值为8
insert into b1(b_name) values('小宝')
set identity_insert b1 off --关闭对标识列的插入操作,标识列不允许手动插入显示值

插入结果:

SQL IDENTITY_INSERT作用案例详解

说明:当设置IDENTITY_INSERT为ON时,必须要指定标识列中要插入的的显示值,要手动的插入标识列中的显示值。因为系统将不再对标识列的显示值自动插入了。所以,必须要手动去给标识列插入显示值。

到此这篇关于SQL IDENTITY_INSERT作用案例详解的文章就介绍到这了,更多相关SQL IDENTITY_INSERT作用内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

MySQL 相关文章推荐
数据库连接池
Apr 06 MySQL
MySQL时间设置注意事项的深入总结
May 06 MySQL
MySQL 如何设计统计数据表
Jun 15 MySQL
解决mysql问题:由于找不到MSVCR120.dll,无法继续执行代码
Jun 26 MySQL
sql注入教程之类型以及提交注入
Aug 02 MySQL
MySQL中的隐藏列的具体查看
Sep 04 MySQL
SQL注入详解及防范方法
Dec 06 MySQL
MySQL优化常用的19种有效方法(推荐!)
Mar 17 MySQL
关于MySQL临时表为什么可以重名的问题
Mar 22 MySQL
MySQL创建管理KEY分区
Apr 13 MySQL
mysql实现将字符串字段转为数字排序或比大小
Jun 14 MySQL
SQLyog的下载、安装、破解、配置教程(MySQL可视化工具安装)
Sep 23 MySQL
MySQL非空约束(not null)案例讲解
Aug 23 #MySQL
MySQL外键约束(FOREIGN KEY)案例讲解
Aug 23 #MySQL
MySQL 1130异常,无法远程登录解决方案详解
Aug 23 #MySQL
Node-Red实现MySQL数据库连接的方法
Aug 07 #MySQL
MySQL如何解决幻读问题
Aug 07 #MySQL
浅谈MySQL之select优化方案
Aug 07 #MySQL
SQL实现LeetCode(197.上升温度)
Aug 07 #MySQL
You might like
PHP3 safe_mode 失效漏洞
2006/10/09 PHP
如何写php守护进程(Daemon)
2015/12/30 PHP
PHP MYSQL简易交互式站点开发
2016/12/27 PHP
PHPExcel在linux环境下导出报500错误的解决方法
2017/01/26 PHP
Thinkphp开发--集成极光推送
2017/09/15 PHP
NiftyCube——轻松实现圆角边框
2007/02/20 Javascript
javascript操作文本框readOnly
2007/05/15 Javascript
ajax上传时参数提交不更新等相关问题
2012/12/11 Javascript
JavaScript插件化开发教程 (三)
2015/01/27 Javascript
jQuery实现文本框输入同步的方法
2015/06/20 Javascript
基于jQuery+PHP+Mysql实现在线拍照和在线浏览照片
2015/09/06 Javascript
JavaScript中的return语句简单介绍
2015/12/07 Javascript
有关jQuery中parent()和siblings()的小问题
2016/06/01 Javascript
axios学习教程全攻略
2017/03/26 Javascript
基于JavaScript实现的希尔排序算法分析
2017/04/14 Javascript
HTML5+JS+JQuery+ECharts实现异步加载问题
2017/12/16 jQuery
Vue.js图片预览插件使用详解
2018/08/27 Javascript
VUE 实现滚动监听 导航栏置顶的方法
2018/09/11 Javascript
vue 使用 vue-pdf 实现pdf在线预览的示例代码
2020/04/26 Javascript
Express 配置HTML页面访问的实现
2020/11/01 Javascript
vue实现动态表格提交参数动态生成控件的操作
2020/11/09 Javascript
[02:02:38]VG vs Mineski Supermajor 败者组 BO3 第一场 6.6
2018/06/07 DOTA
Python二分法搜索算法实例分析
2015/05/11 Python
Window10+Python3.5安装opencv的教程推荐
2018/04/02 Python
Python判断变量名是否合法的方法示例
2019/01/28 Python
Python实现朴素贝叶斯的学习与分类过程解析
2019/08/24 Python
python 中Arduino串口传输数据到电脑并保存至excel表格
2019/10/14 Python
零基础学python应该从哪里入手
2020/08/11 Python
python中time、datetime模块的使用
2020/12/14 Python
Bibloo荷兰:女士、男士和儿童的服装、鞋子和配饰
2019/02/25 全球购物
ParcelABC西班牙:包裹运送和快递服务
2019/12/24 全球购物
沙特阿拉伯排名第一的在线时尚购物应用程序:1Zillion
2020/08/08 全球购物
英国最大的在线照明商店:Litecraft
2020/08/31 全球购物
会计工作决心书
2014/03/11 职场文书
法英专业大学生职业生涯规划书范文
2014/09/22 职场文书
2015年事业单位办公室文员工作总结
2015/04/24 职场文书