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
Barbara StreisandOriginal
2025-01-09 08:57:41844Durchsuche

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>
  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>

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>

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!

Stellungnahme:
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