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 相关文章推荐
MySQL update set 和 and的区别
May 08 MySQL
MySQL中distinct和count(*)的使用方法比较
May 26 MySQL
MySQL 十大常用字符串函数详解
Jun 30 MySQL
低版本Druid连接池+MySQL驱动8.0导致线程阻塞、性能受限
Jul 01 MySQL
详细聊聊MySQL中慢SQL优化的方向
Aug 30 MySQL
MySQL基础快速入门知识总结(附思维导图)
Sep 25 MySQL
mysql 获取时间方式
Mar 20 MySQL
实战 快速定位MySQL的慢SQL
Mar 22 MySQL
MySQL 外连接语法之 OUTER JOIN
Apr 09 MySQL
MySQL事务操作的四大特性以及并发事务问题
Apr 12 MySQL
mysql幻读详解实例以及解决办法
Jun 16 MySQL
MySQL详细讲解变量variables的用法
Jun 21 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
用PHP写的基于Memcache的Queue实现代码
2011/11/27 PHP
php实现购物车产品删除功能(2)
2020/07/23 PHP
PHPCrawl爬虫库实现抓取酷狗歌单的方法示例
2017/12/21 PHP
PHP获取日期对应星期、一周日期、星期开始与结束日期的方法
2018/06/22 PHP
PHP反射基础知识回顾
2020/09/10 PHP
简单的jquery拖拽排序效果实现代码
2011/09/20 Javascript
利用百度地图JSAPI生成h7n9禽流感分布图实现代码
2013/04/15 Javascript
js实现将选中内容分享到新浪或腾讯微博
2015/12/16 Javascript
js实现目录链接,内容跟着目录滚动显示的简单实例
2016/10/15 Javascript
简单理解js的prototype属性及使用
2016/12/07 Javascript
基于JavaScript实现微信抢红包功能
2017/07/20 Javascript
Django+Vue.js搭建前后端分离项目的示例
2017/08/07 Javascript
深入学习TypeScript 、React、 Redux和Ant-Design的最佳实践
2019/06/17 Javascript
Vue+Koa2 打包后进行线上部署的教程详解
2019/07/31 Javascript
详解将微信小程序接口Promise化并使用async函数
2019/08/05 Javascript
mpvue网易云短信接口实现小程序短信登录的示例代码
2020/04/03 Javascript
JavaScript实现无限轮播效果
2020/11/19 Javascript
[00:34]DOTA2上海特级锦标赛 Spirit战队宣传片
2016/03/04 DOTA
[00:35]DOTA2上海特级锦标赛 EG战队宣传片
2016/03/04 DOTA
Python中的高级数据结构详解
2015/03/27 Python
python实现发送邮件功能
2017/07/22 Python
深入理解Django的自定义过滤器
2017/10/17 Python
浅谈numpy库的常用基本操作方法
2018/01/09 Python
解决python 自动安装缺少模块的问题
2018/10/22 Python
Python 实现遥感影像波段组合的示例代码
2019/08/04 Python
Python socket实现的文件下载器功能示例
2019/11/15 Python
移动端开发HTML5页面点击按钮后出现闪烁或黑色背景的解决办法
2018/09/19 HTML / CSS
草莓网化妆品日本站:Strawberrynet日本
2017/10/20 全球购物
彪马土耳其官网:PUMA土耳其
2019/07/14 全球购物
社区安全检查制度
2014/02/03 职场文书
申请任职学生会干部自荐书范文
2014/02/13 职场文书
2014年端午节演讲稿范文
2014/05/23 职场文书
2014年派出所工作总结
2014/11/21 职场文书
十二生肖观后感
2015/06/12 职场文书
同意报考证明
2015/06/17 职场文书
仅仅使用 HTML/CSS 实现各类进度条的方式汇总
2021/11/11 HTML / CSS