Wie behebt man 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. Das IDENTITY-Limit ist für die Primärschlüsselspalte festgelegt, um dies zu tun. Der Startort und der Schritt des Inkrements werden als Parameter in die Spalte IDENTITY übertragen. Wenn dann ein neuer Datensatz hinzugefügt wird 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 werden wir den Fehler diskutieren „Es kann kein expliziter Wert für die Identitätsspalte in die Tabelle eingefügt werden

wenn IDENTITY_INSERT auf OFF gesetzt ist ”
Wie nachfolgend dargestellt.

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 Sie eine Tabelle mit dem Namen "Person" mit dem folgenden Code. Gebauter Tisch mit a "PRIMARY KEY IDENTITY"

CREATE TABLE Person (ID INT IDENTITY (1, 1), Vorname VARCHAR (MAX), Nachname VARCHAR (MAX))

Syntax zum Setzen von “identity_insert off | auf":

Das “Identity_insert off | setzen auf" hilft uns, diesen Fehler zu beheben. Die korrekte Syntax für diese Anweisung lautet wie folgt.

SET IDENTITY_INSERT  . .  {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 festgelegt werden muss AUF oder AUS. 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 werden wir Daten mit dem in die Tabelle einfügen "IDENTITY INSERT" einstellen "AUS". Wenn die ID in der INSERT-Anweisung vorhanden ist, wird der Fehler angezeigt "Es kann kein expliziter Wert für die Identitätsspalte in die Tabelle" Person "eingefügt werden, wenn IDENTITY_INSERT auf OFF gesetzt ist."

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

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

Die Ausgabe wird so sein.

Lösung:

Beim Drehen des "IDENTITY INSERT OFF", das"PRIMARY KEY ID" Darf NICHT in der Einfügeanweisung 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')

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 mit dem in die Tabelle ein "IDENTITY INSERT" einstellen "AUF". Wenn die ID in der INSERT-Anweisung nicht vorhanden ist, wird der Fehler angezeigt "Nachricht 545, Ebene 16, Status 1, Zeile 17. Der explizite Wert muss für die Identitätsspalte in der Tabelle" Person "angegeben werden, entweder wenn IDENTITY_INSERT auf ON gesetzt ist oder wenn ein Replikationsbenutzer in eine NICHT FÜR REPLIKATION-Identitätsspalte einfügt."

Lösung:

Beim Drehen des"IDENTITY INSERT ON" das "PRIMÄRSCHLÜSSEL ICH WÜRDE" muss 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')

Dadurch werden Daten fehlerfrei in die Tabelle eingefügt. Und so kam es dass der PRIMARY KEY ID muss vom Benutzer ausdrücklich eingefügt werden. Außerdem wird nicht automatisch ein eindeutiger ID-Wert hinzugefügt, wie in der folgenden Abbildung dargestellt.

Wenn du "SET IDENTITY INSERT ON ”wird es für die gesamte Sitzung eingeschaltet bleiben. 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 Registerkarte für Abfragen öffnen, müssen Sie diese aktivieren AUF erneut für dieses Abfragefenster.

Facebook Twitter Google Plus Pinterest