Heim > Datenbank > MySQL-Tutorial > Wie kann ich IDENTITY_INSERT in SQL Server 2008 für kontrollierte Identitätsspalteneinfügungen aktivieren und deaktivieren?

Wie kann ich IDENTITY_INSERT in SQL Server 2008 für kontrollierte Identitätsspalteneinfügungen aktivieren und deaktivieren?

Barbara Streisand
Freigeben: 2025-01-09 08:57:41
Original
815 Leute haben es durchsucht

How to Enable and Disable IDENTITY_INSERT in SQL Server 2008 for Controlled Identity Column Insertions?

SQL Server 2008: Verwalten von Identitätsspalteneinfügungen mit IDENTITY_INSERT

In SQL Server-Datenbanken treten Situationen auf, in denen Sie manuell Werte in Identitätsspalten einfügen müssen. Allerdings ist IDENTITY_INSERT standardmäßig deaktiviert und verhindert so das direkte Einfügen.

Den IDENTITY_INSERT AUS-Fehler verstehen

Der Versuch, einen Wert in eine Identitätsspalte einzufügen, während IDENTITY_INSERT auf AUS gesetzt ist, führt zu folgendem Fehler:

Der explizite Wert für die Identitätsspalte in der Tabelle „TableName“ kann nicht eingefügt werden, wenn IDENTITY_INSERT auf OFF gesetzt ist.

Das liegt daran, dass SQL Server eindeutige Identitätswerte automatisch verwaltet. Wenn IDENTITY_INSERT AUS ist, geht die Datenbank davon aus, dass die Identitätsspalte leer ist, sodass der nächste sequentielle Wert zugewiesen werden kann.

Aktivieren IDENTITY_INSERT mit SQL Server Management Studio (SSMS)

So aktivieren Sie IDENTITY_INSERT für eine bestimmte Tabelle in SSMS:

  1. Klicken Sie mit der rechten Maustaste auf die Datenbank, die die Zieltabelle enthält.
  2. Wählen Sie „Neue Abfrage“.
  3. Führen Sie den folgenden T-SQL-Befehl aus und ersetzen Sie <tablename> durch den Namen Ihrer Tabelle:
<code class="language-sql">SET IDENTITY_INSERT <tablename> ON;</code>
Nach dem Login kopieren
  1. Geben Sie nach der Ausführung Ihre Daten ein. Denken Sie daran, IDENTITY_INSERT anschließend zu deaktivieren.

T-SQL direkt verwenden

Sie können IDENTITY_INSERT auch direkt in T-SQL verwalten:

<code class="language-sql">SET IDENTITY_INSERT sometableWithIdentity ON;

INSERT INTO sometableWithIdentity (IdentityColumn, col2, col3, ...)
VALUES (AnIdentityValue, col2value, col3value, ...);

SET IDENTITY_INSERT sometableWithIdentity OFF;</code>
Nach dem Login kopieren

Detaillierte Fehlermeldungen

Fehlermeldungen geben die betroffene Tabelle an und helfen so bei der Problemerkennung. Zum Beispiel:

<code>Cannot insert explicit value for identity column in table 'Baskets' when IDENTITY_INSERT is set to OFF.</code>
Nach dem Login kopieren

Durch die vorübergehende Aktivierung von IDENTITY_INSERT steuern Sie die Werte der Identitätsspalte. Deaktivieren Sie es anschließend immer, um die Datenbankintegrität und die sequentielle Identitätsgenerierung aufrechtzuerhalten.

Das obige ist der detaillierte Inhalt vonWie kann ich IDENTITY_INSERT in SQL Server 2008 für kontrollierte Identitätsspalteneinfügungen aktivieren und deaktivieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage