SQL IDENTITY_INSERT-Fallstudie

SQL IDENTITY_INSERT-Fallstudie

Wenn eine Spalte in einer Datentabelle einmal als Identitätsspalte festgelegt ist, ist es im Allgemeinen nicht möglich, den Anzeigewert der Identitätsspalte manuell in die Identitätsspalte einzufügen. Sie können Anzeigewerte jedoch manuell in Identitätsspalten einfügen, indem Sie die Eigenschaft SET IDENTITY_INSERT festlegen.

Schreibmethode:

  1. SET IDENTITY_INSERT Tabellenname ON: Gibt an, dass der Einfügemodus für den Anzeigewert der Identitätsspalte aktiviert ist, sodass Daten für den Anzeigewert der Identitätsspalte manuell eingefügt werden können.
  2. SET IDENTITY_INSERT Tabellenname OFF: Gibt an, dass der Einfügevorgang des Anzeigewerts der Identitätsspalte deaktiviert wird. Die Identitätsspalte erlaubt kein manuelles Einfügen von Anzeigewerten.

Hinweis: IDENTITY_INSERT ON und OFF treten paarweise auf. Denken Sie daher nach einem manuellen Einfügevorgang daran, IDENTITY_INSERT auf OFF zu setzen, da sonst das nächste automatische Einfügen von Daten fehlschlägt.

Zum Beispiel:

Erstellen Sie eine Tabelle b1 mit b_id als Identifikationsspalte. Legen Sie sie als eindeutige Kennung fest, beginnend bei 1. Bei jedem Einfügen neuer Daten erhöht sich der Wert um 1 und darf nicht leer sein:

Tabelle b1 erstellen
(
b_id int identity(1,1) Primärschlüssel ungleich null,   
b_name varchar(20) null
)

Wenn die Spalte „b_id“ in Tabelle b1 als eindeutige Identifikationsspalte festgelegt ist, ist der Wert der Eigenschaft IDENTITY_INSERT standardmäßig auf OFF gesetzt. Die Identitätsspalte b_id erlaubt kein manuelles Einfügen von Anzeigewerten. Das System kann Anzeigewerte nur automatisch in Sortierreihenfolge einfügen.

1. Wenn IDENTITY_INSERT ausgeschaltet ist, fügen Sie zwei Datensätze in Tabelle b1 ein und fügen Sie Anzeigewerte manuell in die Identitätsspalte ein:

Code 1:

einfügen in b1(b_id,b_name) Werte(1,'Lily')
einfügen in b1(b_id,b_name) Werte(2,'Name')

Ergebnis einfügen:

Code 2:

einfügen in b1(b_name) Werte('Lily')
einfügen in b1(b_name) Werte('Name')

Ergebnis einfügen:

Hinweis: Wenn IDENTITY_INSERT auf OFF gesetzt ist, ist das manuelle Einfügen von Anzeigewerten in die Identitätsspalte nicht zulässig. Das System kann nur automatisch Anzeigewerte in die Identitätsspalte einfügen.

2. Wenn IDENTITY_INSERT aktiviert ist, fügen Sie zwei Datensätze in Tabelle b1 ein und fügen Sie Anzeigewerte manuell in die Identitätsspalte ein:

Code 1:

set identity_insert b1 on -- Aktiviert den Einfügemodus für die Identitätsspalte. Die Identitätsspalte ermöglicht das manuelle Einfügen von Anzeigewerten. insert into b1(b_id,b_name) values(8,'小白') -- Fügt den Anzeigewert der Identitätsspalte b_id manuell in 8 ein
einfügen in b1(b_id,b_name) Werte(9,'Name')
set identity_insert b1 off -- Deaktiviert den Einfügevorgang für die Identitätsspalte. Die Identitätsspalte erlaubt kein manuelles Einfügen von Anzeigewerten.

Ergebnis einfügen:

Code 2:

set identity_insert b1 on -- Aktiviert den Einfügemodus für die Identitätsspalte. Die Identitätsspalte ermöglicht das manuelle Einfügen von Anzeigewerten. insert into b1(b_name) values('小胖') -- Fügt den Anzeigewert der Identitätsspalte b_id manuell in 8 ein.
einfügen in b1(b_name) Werte('Xiaobao')
set identity_insert b1 off -- Deaktiviert den Einfügevorgang für die Identitätsspalte. Die Identitätsspalte erlaubt kein manuelles Einfügen von Anzeigewerten.

Ergebnis einfügen:

Hinweis: Wenn Sie IDENTITY_INSERT auf ON setzen, müssen Sie den Anzeigewert angeben, der in die Identitätsspalte eingefügt werden soll, und den Anzeigewert manuell in die Identitätsspalte einfügen. Denn der Anzeigewert der Identitätsspalte wird vom System nicht mehr automatisch eingefügt. Daher müssen Sie Anzeigewerte manuell in die Identitätsspalte einfügen.

Dies ist das Ende dieses Artikels über den detaillierten Fall von SQL IDENTITY_INSERT. Weitere Informationen zur Rolle von SQL IDENTITY_INSERT finden Sie in den vorherigen Artikeln von 123WORDPRESS.COM oder in den folgenden verwandten Artikeln. Ich hoffe, Sie werden 123WORDPRESS.COM auch in Zukunft unterstützen!

Das könnte Sie auch interessieren:
  • [Projektlayoutkonfiguration] Kombination aus Nosql- und Python-Web-Flask-Framework
  • MySQL 1130-Ausnahme, Remote-Anmeldung nicht möglich – Lösung
  • Lösen Sie das Problem verstümmelter Daten bei der MySQL-Datenbankmigration
  • SQL-Schreiben - Zeilenvergleich
  • Lösung für MySQL-Verbindungsausnahme und Fehler 10061
  • Lösen Sie das Problem, dass das Konfigurationsschema der SpringBoot-Datei application.yaml kein SQL ausführen kann
  • Grafisches Tutorial zur Installation der MySQL-Datenbank und Konfiguration von Umgebungsvariablen auf dem Mac
  • Auf JavaSwing basierendes Hotelmanagementsystem, entworfen und implementiert

<<:  Erklärung der Funktionsweise und Verwendung von Redux

>>:  Detaillierte Erklärung des Nginx-Prozessplanungsproblems

Artikel empfehlen

MySQL-Schleife fügt zig Millionen Daten ein

1. Erstellen Sie eine Testtabelle Tabelle `mysql_...

Schritte zum Reparieren einer Beschädigung der Datei grub.cfg im Linux-System

Inhaltsverzeichnis 1. Einführung in die grub.cfg-...

Deinstallieren der MySQL-Datenbank unter Linux

Wie deinstalliere ich eine MySQL-Datenbank unter ...

Detaillierte Einführung in die gespeicherten MySQL-Funktionen

Inhaltsverzeichnis 1. Erstellen Sie eine gespeich...

Freundliche Alternativen zum Find Tool in Linux

Mit dem Befehl „Find“ können Sie in einem angegeb...

Definieren der Mindesthöhe der Inline-Elementspanne

Das Span-Tag wird häufig beim Erstellen von HTML-...

Implementierung zum Erstellen benutzerdefinierter Images mit Dockerfile

Inhaltsverzeichnis Vorwort Einführung in Dockerfi...

Grundlegendes Lernen und Erfahrungsaustausch zu MySQL-Transaktionen

Eine Transaktion ist eine logische Gruppe von Ope...

Linux-Swap-Partition (ausführliche Erklärung)

Inhaltsverzeichnis linux 1. Was ist SWAP 2. Was p...

So installieren und konfigurieren Sie Docker nginx

Laden Sie das Nginx-Image in Docker herunter Dock...

Detaillierte Erklärung des JavaScript-Proxy-Objekts

Inhaltsverzeichnis 1. Was ist ein Proxy? 2. Wie w...

Erläuterung des React+TypeScript-Projektaufbaufalls

Das Erstellen eines React-Projekts kann sehr einf...