So beheben Sie den Fehler “Expliziter Wert für Identitätsspalte kann nicht in Tabelle eingefügt werden, wenn IDENTITY_INSERT auf OFF gesetzt ist”?

Die Primärschlüsselspalte wird beim Erstellen einer SQL Server-Datenbank häufig auf automatische Inkrementierung festgelegt. Hierfür ist das IDENTITY-Limit für die Primärschlüsselspalte festgelegt. Der Startort und der Schritt des Inkrements werden als Parameter in die Spalte IDENTITY übertragen. Wenn dann ein neuer Datensatz hinzugefügt und die Identitätseinfügung auf AUS gesetzt wird, wird der Wert der Spalte IDENTITÄT um den vordefinierten Schritt normalerweise um eine Zahl erhöht. Darüber hinaus wird die IDENTITY INSERT-Eigenschaft nur für eine Tabelle in einer einzelnen Sitzung auf ON gesetzt.

In diesem Artikel wird der Fehler “Expliziter Wert für Identitätsspalte kann nicht in Tabelle eingefügt werden” erläutert

<

table name> wenn IDENTITY_INSERT auf OFF gesetzt ist “, wie unten gezeigt.

Deaktivieren Sie “IDENTITY INSERT OFF” und fügen Sie Daten ohne “PRIMARY KEY ID” in die insert-Anweisung ein

Der Fehler tritt auf, wenn der Benutzer “identity_insert” auf “OFF” gesetzt hat. Versucht dann, Daten explizit in die Primärschlüsselspalte der Tabelle einzufügen. Dies kann anhand des folgenden Beispiels erklärt werden.

Datenbank- und Tabellenerstellung:

Erstellen Sie zunächst eine Datenbank mit dem Namen “appuals”.

Erstellen einer Datenbank mit dem Namen “appuals”.

Erstellen Sie eine Tabelle mit dem Namen “Person” mit dem folgenden Code. Gebauter Tisch mit einer “PRIMARY KEY IDENTITY”

CREATE TABLE Person (ID INT IDENTITY (1, 1), Vorname VARCHAR (MAX), Nachname VARCHAR (MAX))Erstellen einer Tabelle mit dem Namen “Person”

Syntax zum Setzen von “identity_insert off | auf”:

Das “set identity_insert off | on ”hilft uns, diesen Fehler zu beheben. Die korrekte Syntax für diese Anweisung lautet wie folgt.

SET IDENTITY_INSERT . .

<

table name> {OFF | AUF }

Während das erste Argument ist der Name der Datenbank, in der sich die Tabelle befindet. Das zweite Argument Shows ist das Schema, zu dem diese Tabelle gehört, deren Identitätswert auf ON oder OFF gesetzt werden muss. Das dritte Argument

ist die Tabelle mit der Identitätsspalte.

Grundsätzlich gibt es zwei verschiedene Möglichkeiten, Daten fehlerfrei in die Tabelle einzufügen. Diese werden als Lösung für diesen Fehler angesehen und im Folgenden erläutert.

Fehler 1: Setzen Sie identity_insert auf OFF

Im ersten Fall fügen wir Daten in die Tabelle ein, wobei “IDENTITY INSERT” auf “OFF” gesetzt ist. Wenn die ID in der INSERT-Anweisung vorhanden ist, wird die Fehlermeldung “Expliziter Wert für Identitätsspalte kann nicht in Tabelle ‘Person’ eingefügt werden, wenn IDENTITY_INSERT auf OFF gesetzt ist” angezeigt.

Führen Sie den folgenden Code auf der Registerkarte Abfrage aus.

Setzen Sie die Person identity_insert aus. in die Person (ID, Vorname, Nachname) Werte einfügen (3, ‘Sadia’, ‘Majeed’), (4, ‘Michel’, ‘Ronald’)

Die Ausgabe wird so sein.

Der Fehler tritt auf, wenn “IDENTITY INSERT OFF” deaktiviert und Daten mit “PRIMARY KEY ID” in die insert-Anweisung eingefügt werden

Lösung:

Beim Ausschalten von “IDENTITY INSERT OFF” darf die “PRIMARY KEY ID” NICHT in der insert-Anweisung vorhanden sein

Führen Sie nun den folgenden Code auf der Registerkarte Abfrage aus

Setzen Sie die Person identity_insert aus. In Person (Vorname, Nachname) Werte einfügen (‘Sadia’, ‘Majeed’), (‘Michel’, ‘Ronald’)Deaktivieren Sie “IDENTITY INSERT OFF” und fügen Sie Daten ohne “PRIMARY KEY ID” in die insert-Anweisung ein

Dadurch werden Daten fehlerfrei in die Tabelle eingefügt. Darüber hinaus muss die PRIMARY KEY ID nicht vom Benutzer eingegeben werden, sondern fügt automatisch einen eindeutigen ID-Wert hinzu, wie in der folgenden Abbildung dargestellt.

Fehler 2: Setzen Sie identity_insert auf ON

Im zweiten Fall fügen wir Daten in die Tabelle ein, wobei “IDENTITY INSERT” auf “ON” gesetzt ist. Wenn die ID in der INSERT-Anweisung nicht vorhanden ist, wird der Fehler “Nachricht 545, Ebene 16, Status 1, Zeile 17” angezeigt. Der explizite Wert für die Identitätsspalte in der Tabelle “Person” muss entweder angegeben werden, wenn IDENTITY_INSERT festgelegt ist auf EIN oder wenn ein Replikationsbenutzer in eine NICHT FÜR REPLIKATION-Identitätsspalte einfügt “.

Der Fehler tritt auf, wenn die Daten in die Tabelle eingefügt werden, wobei “IDENTITY INSERT” auf “ON” gesetzt ist. Daher muss der Benutzer die PRIMARY KEY ID ausdrücklich einfügen

Lösung:

Beim Einschalten von “IDENTITY INSERT ON” muss die “PRIMARY KEY ID” in der insert-Anweisung vorhanden sein.

Führen Sie den folgenden Code auf der Registerkarte Abfrage aus

setze identity_insert person auf; In Person (ID, Vorname, Nachname) Werte einfügen (5, ‘Jack’, ‘Schwarz’), (6, ‘John’, ‘Wicky’)Einfügen von Daten in die Tabelle mit der Einstellung “IDENTITY INSERT” auf “ON” und mit der Primärschlüssel-ID in der insert-Anweisung.

Dadurch werden Daten fehlerfrei in die Tabelle eingefügt. Daher muss der Benutzer die PRIMARY KEY ID ausdrücklich einfügen. Außerdem wird nicht automatisch ein eindeutiger ID-Wert hinzugefügt, wie in der folgenden Abbildung dargestellt.

Wenn Sie “IDENTITY INSERT ON” setzen, bleibt es für die gesamte Sitzung eingeschaltet. Auf diese Weise können Sie beliebig viele Datensätze hinzufügen, sobald dies festgelegt wurde. Dies bezieht sich auch nur auf die Sitzung, in der sie aktiviert ist. Wenn Sie also eine andere Abfrage-Registerkarte öffnen, müssen Sie sie für dieses Abfragefenster erneut aktivieren.

Similar Posts

Leave a Reply

Your email address will not be published. Required fields are marked *