Detaillierte Erläuterung von IDENTITY_INSERT in SQL Server 2008
In SQL Server ist IDENTITY_INSERT
eine Schlüsseleinstellung, die bestimmt, ob die Datenbank explizite Werte für Identitätsspalten akzeptiert. Bei der Einstellung OFF generiert die Datenbank bei INSERT-Vorgängen automatisch Werte für diese Spalten. In manchen Fällen kann es jedoch erforderlich sein, IDENTITY_INSERT
auf EIN zu setzen, um den Wert manuell einzugeben.
Warum IDENTITY_INSERT deaktivieren und aktivieren?
Ein häufiger Grund für die Deaktivierung IDENTITY_INSERT
ist die Durchsetzung der Datenintegrität. Indem die Datenbank das explizite Einfügen von Werten verhindert, stellt sie sicher, dass aufeinanderfolgende ID-Werte generiert werden, wodurch das Risiko doppelter Einträge verringert wird. Für einige spezifische Aufgaben, wie z. B. das Importieren von Daten aus externen Quellen, müssen Sie jedoch möglicherweise Identitätswerte manuell zuweisen.
IDENTITY_INSERT mithilfe einer SQL-Abfrage aktivieren
Um IDENTITY_INSERT
in SQL Server 2008 zu aktivieren, führen Sie die folgende Abfrage aus:
<code class="language-sql">SET IDENTITY_INSERT Database.dbo.Baskets ON</code>
Ersetzen Sie „Database“ und „dbo“ durch die entsprechenden Datenbank- und Schemanamen. Nachdem Sie diese Abfrage ausgeführt haben, können Sie mit dem manuellen Einfügen fortfahren.
Verarbeitung aktivierter IDENTITY_INSERT im Code
Auch wenn die Verwendung von Abfragen aktiviert ist IDENTITY_INSERT
, wenn Sie während eines INSERT-Vorgangs immer noch eine Fehlermeldung erhalten, kann dies am Anwendungscode liegen. Stellen Sie sicher, dass Ihr Code nicht versucht, die Identitätsspalte explizit festzulegen. Wenn IDENTITY_INSERT
auf OFF gesetzt ist, weist die Datenbank unabhängig von den im Code angegebenen expliziten Werten automatisch Werte zu.
Denken Sie daran, nach Abschluss der manuellen Eingabe unbedingt IDENTITY_INSERT
wieder auf AUS zu stellen, um die Datenintegrität wiederherzustellen. Deaktivieren Sie es mit der folgenden Abfrage:
<code class="language-sql">SET IDENTITY_INSERT Database.dbo.Baskets OFF</code>
Das obige ist der detaillierte Inhalt vonWann und wie sollten Sie IDENTITY_INSERT von SQL Server verwenden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!