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

So starten Sie ein JAR-Paket und führen es unter Linux im Hintergrund aus

Der Linux-Befehl zum Ausführen des JAR-Pakets lau...

MySQL-Inspektionsskript (unbedingt lesen)

Wie unten dargestellt: #!/usr/bin/env python3.5 p...

Vue implementiert Beispielcode zur Formulardatenvalidierung

Fügen Sie dem el-form-Formular Regeln hinzu: Defi...

Zusammenfassung der Anwendung von Übergangskomponenten in Vue-Projekten

​Transtion in Vue ist eine Kapselungskomponente f...

MySQL-Datenbank implementiert MMM-Hochverfügbarkeitsclusterarchitektur

Konzept MMM (Master-Master-Replikationsmanager fü...

So aktualisieren Sie MySQL 5.6 auf 5.7 unter Windows

Vorne geschrieben Es gibt zwei Möglichkeiten, MyS...

Erläuterung der Faktoren, die die Datenbankleistung in MySQL beeinflussen

Eine Geschichte über die Datenbankleistung Währen...

mysql 5.7.11 winx64 anfängliche Passwortänderung

Laden Sie die komprimierte Version von MySQL-5.7....

Kenntnisse über die MySQL Memory-Speicher-Engine

Wissenspunkte zur Speicher-Storage-Engine Die Spe...

jQuery implementiert das Bouncing-Ball-Spiel

In diesem Artikel wird der spezifische Code von j...

So verwenden Sie Umgebungsvariablen in der Nginx-Konfigurationsdatei

Vorwort Nginx ist ein auf Leistung ausgelegter HT...