Fehlerbehebung für den Fehler „Kann keinen expliziten Wert für die Identitätsspalte einfügen“ in SQL Server
Tritt in SQL Server der Fehler „Der explizite Wert für die Identitätsspalte in der Tabelle ‚table‘ kann nicht eingefügt werden, wenn IDENTITY_INSERT auf OFF gesetzt ist“ auf? Dies tritt normalerweise auf, wenn versucht wird, einen Wert manuell in eine Spalte einzufügen, die für die automatische Inkrementierung vorgesehen ist. Identitätsspalten generieren automatisch sequentielle Werte für jede neue Zeile. Standardmäßig ist IDENTITY_INSERT
auf OFF
gesetzt, wodurch das direkte Einfügen von Werten verhindert wird.
So lösen Sie dieses Problem:
Methode 1: IDENTITY_INSERT
Mit dieser Methode können Sie einen bestimmten Wert in die Identitätsspalte einfügen, jedoch nur vorübergehend.
<code class="language-sql">SET IDENTITY_INSERT Table1 ON INSERT INTO Table1 (OperationID, OpDescription, FilterID) --Column list is mandatory VALUES (20, 'Hierarchy Update', 1); SET IDENTITY_INSERT Table1 OFF</code>
Methode 2: Entfernen Sie die Identitätsbeschränkung
Wenn Sie für diese Spalte keine automatische Inkrementierung benötigen, entfernen Sie die Identitätsbeschränkung. Hinweis: Dadurch wird die automatische Inkrementierung dauerhaft deaktiviert.
<code class="language-sql">ALTER TABLE Table1 DROP CONSTRAINT IDENTITY_Constraint;</code>
Nach dieser Änderung können Sie Werte direkt in die Spalte einfügen. Bedenken Sie jedoch, dass Sie für jede weitere Zeileneinfügung manuell Werte angeben müssen. Bevor Sie sich für diese Methode entscheiden, ist eine sorgfältige Überlegung erforderlich.
Das obige ist der detaillierte Inhalt vonWie kann das Problem behoben werden, dass der explizite Wert für die Identitätsspalte nicht in die Tabelle eingefügt werden kann?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!