SQL IDENTITY_INSERT ケーススタディ

SQL IDENTITY_INSERT ケーススタディ

一般的に、データ テーブル内の列を ID 列として設定すると、ID 列の表示値を手動で ID 列に挿入することはできません。ただし、SET IDENTITY_INSERT プロパティを設定することで、ID 列に表示値を手動で挿入することができます。

書き方:

  1. SET IDENTITY_INSERT テーブル名 ON: ID 列の表示値の挿入モードがオンになっていることを示します。これにより、ID 列の表示値のデータを手動で挿入できるようになります。
  2. SET IDENTITY_INSERT テーブル名 OFF: ID 列の表示値の挿入操作をオフにすることを示します。ID 列では、表示値を手動で挿入することはできません。

注意: IDENTITY_INSERT ON と OFF はペアで表示されるため、手動挿入操作を実行した後は、IDENTITY_INSERT を OFF に設定することを忘れないでください。そうしないと、次のデータの自動挿入が失敗します。

例えば:

b_id を識別列として持つテーブル b1 を作成します。これを 1 から始まる一意の識別子として設定します。新しいデータが挿入されるたびに、値は 1 ずつ増加し、空にすることはできません。

テーブルb1を作成
(
b_id int identity(1,1) 主キーがnullでない、   
b_name varchar(20) ヌル
)

テーブル b1 の b_id 列が一意の識別子列として設定されている場合、IDENTITY_INSERT プロパティの値はデフォルトで OFF に設定されます。 ID 列 b_id では、表示値を手動で挿入することはできません。システムは、表示値をソート順に自動的に挿入することしかできません。

1. IDENTITY_INSERTがOFFの場合、テーブルb1に2つのレコードを挿入し、ID列に表示値を手動で挿入します。

コード1:

b1(b_id,b_name) に値(1,'Lily') を挿入します。
b1(b_id,b_name) に値(2,'阿呆') を挿入します

結果を挿入:

コード2:

b1(b_name) に値('Lily') を挿入します
b1(b_name) に値('阿呆') を挿入します

結果を挿入:

注意: IDENTITY_INSERT が OFF に設定されている場合、ID 列への表示値の手動挿入は許可されません。システムは ID 列に表示値を自動的に挿入することしかできません。

2. IDENTITY_INSERTがONの場合、テーブルb1に2つのレコードを挿入し、ID列に表示値を手動で挿入します。

コード1:

set identity_insert b1 on -- ID 列の挿入モードを有効にします。ID 列では、表示値を手動で挿入できます。 insert into b1(b_id,b_name) values(8,'小白') -- ID 列 b_id の表示値を 8 に手動で挿入します。
b1(b_id,b_name) に値(9,'小黒') を挿入します
set identity_insert b1 off -- ID 列への挿入操作を無効にします。ID 列では、表示値を手動で挿入することはできません。

結果を挿入:

コード2:

set identity_insert b1 on -- ID 列の挿入モードを有効にします。ID 列では、表示値を手動で挿入できます。 insert into b1(b_name) values('小胖') -- ID 列の表示値を手動で挿入します b_id to 8
b1(b_name) に値('Xiaobao') を挿入します
set identity_insert b1 off -- ID 列への挿入操作を無効にします。ID 列では、表示値を手動で挿入することはできません。

結果を挿入:

注意: IDENTITY_INSERT を ON に設定する場合は、ID 列に挿入する表示値を指定し、その表示値を手動で ID 列に挿入する必要があります。システムは ID 列の表示値を自動的に挿入しなくなるためです。したがって、ID 列に表示値を手動で挿入する必要があります。

SQL IDENTITY_INSERTの詳細な事例についてはこれで終わりです。SQL IDENTITY_INSERTの役割についてさらに詳しく知りたい方は、123WORDPRESS.COMの過去の記事を検索するか、以下の関連記事を引き続きご覧ください。今後とも123WORDPRESS.COMをよろしくお願いいたします。

以下もご興味があるかもしれません:
  • [プロジェクトレイアウト構成] NosqlとPython Web-Flaskフレームワークの組み合わせ
  • MySQL 1130例外、リモートログインできない解決策
  • MySQLデータベース移行におけるデータ文字化けの問題を解決する
  • SQL の記述 - 行の比較
  • MySQL 接続例外とエラー 10061 の解決方法
  • SpringBoot application.yamlファイル構成スキーマがSQLを実行できない問題を解決する
  • Mac に MySQL データベースをインストールし、環境変数を設定するためのグラフィック チュートリアル
  • JavaSwing をベースに設計・実装されたホテル管理システム

<<:  reduxの動作原理と使い方の説明

>>:  Nginx プロセス スケジューリングの問題の詳細な説明

推薦する

HTML の類似タグと属性の違いの詳細な説明

【1】<i></i>タグと<em></em>タグ同じ...

Docker 構成コンテナの場所とヒントのまとめ

Docker の使用に関するヒント1. 停止したDockerコンテナをすべてクリーンアップする停止し...

git bash を使用して Linux にログインするための ssh の設定方法

1. まず、Linux サーバー上で公開鍵ファイルと秘密鍵ファイルを生成します。デフォルトの保存ディ...

Dockerfile を使用して Node.js サービスをデプロイする方法

Dockerfileを初期化するプロジェクトの名前が express であると仮定して、expres...

Linux で Redis のリモート接続を実装する方法

LinuxにRedisをインストールしたら、Javaを使って接続します。Javaコードは次のとおりで...

Node.js のワーカー スレッドの詳細な理解

目次概要Node.js における CPU バウンド アプリケーションの歴史CPUを集中的に使用する操...

流れと動的なライン効果を実現する純粋なCSSコード

アイデア:外側のボックスは背景を設定し、内側のボックスは背景の幅と高さを設定し、ボックスを動かすアニ...

Vue 2つのフィールドの共同検証によりパスワード変更機能を実現

目次1. はじめに2. ソリューションの実装2.1 実装コード2.2 コードの説明2.3 検証結果1...

Alibaba Cloud Server に MySQL データベースをインストールする詳細なチュートリアル

目次序文1. MySQLをアンインストールする2. MySQLをインストールする要約する序文学習中に...

標準のMySQL (x64) Windowsバージョンのインストール手順の詳細な説明

MySQL x64 はインストーラーを提供していません、インストーラーを提供していません、インストー...

UbuntuはPythonスクリプトのサンプルコードを定期的に実行する

オリジナルリンク: https://vien.tech/article/157序文この記事では、Ub...

JavaScript の基本: ループと配列

目次ループ - for forループの基本的な使い方ループを終了するネストされたループ配列配列とは何...

Linuxドライバのプラットフォームバスの詳細説明

目次1. プラットフォームバスの紹介1.1. Linuxドライバの分離と階層化1.1.1. Linu...

MySQL フラッシュリストとダーティページフラッシュメカニズム

1. レビューMySQL の起動後にバッファ プールが初期化されます。バッファ プールは N 個の空...