網站首頁 編程語言 正文
一般情況下,當數據表中,莫一列被設置成了標識列之后,是無法向標識列中手動的去插入標識列的顯示值。但是,可以通過設置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,'阿呆')
插入結果:
代碼2:
insert into b1(b_name) values('莉莉')
insert into b1(b_name) values('阿呆')
插入結果:
說明:當把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 --關閉對標識列的插入操作,標識列不允許手動插入顯示值
插入結果:
代碼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 --關閉對標識列的插入操作,標識列不允許手動插入顯示值
插入結果:
說明:當設置IDENTITY_INSERT為ON時,必須要指定標識列中要插入的的顯示值,要手動的插入標識列中的顯示值。因為系統將不再對標識列的顯示值自動插入了。所以,必須要手動去給標識列插入顯示值。
原文鏈接:https://blog.csdn.net/qq112212qq/article/details/84634774
相關推薦
- 2023-01-23 C語言實現讀取CSV文件的方法詳解_C 語言
- 2022-07-30 解決響應式數據依賴響應式數據無響應問題
- 2022-03-31 C語言類的雙向鏈表詳解_C 語言
- 2022-06-18 Elasticsearches之python使用及Django與Flask集成示例_python
- 2022-07-08 Python?3.x對.CSV數據按任意行、列讀取的過程_python
- 2022-08-26 C++宏函數和內聯函數的使用_C 語言
- 2023-10-26 void 0 有什么意義?undefined竟然是可變的?
- 2021-12-10 C語言光標信息CONSOLE_CURSOR_INFO類型詳解_C 語言
- 最近更新
-
- window11 系統安裝 yarn
- 超詳細win安裝深度學習環境2025年最新版(
- Linux 中運行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎操作-- 運算符,流程控制 Flo
- 1. Int 和Integer 的區別,Jav
- spring @retryable不生效的一種
- Spring Security之認證信息的處理
- Spring Security之認證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權
- redisson分布式鎖中waittime的設
- maven:解決release錯誤:Artif
- restTemplate使用總結
- Spring Security之安全異常處理
- MybatisPlus優雅實現加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務發現-Nac
- Spring Security之基于HttpR
- Redis 底層數據結構-簡單動態字符串(SD
- arthas操作spring被代理目標對象命令
- Spring中的單例模式應用詳解
- 聊聊消息隊列,發送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠程分支