SQL Identity Insert

SQL Identity Insert
SQL Server bietet uns eine Identitätsklausel, mit der Sie serielle oder automatische Inkrement-Spalten erstellen können. Wenn eine Spalte als Identitätsspalte festgelegt wird, werden ihre Werte automatisch generiert, wenn die Tabelle neue Datensätze hinzugefügt werden.

Dies bietet Ihnen die Möglichkeit, eine eindeutige Kennung für jede Spalte ohne manuelle Datenbankinspektion zu haben.

SQL Server -Identität

In SQL Server können Sie wie gezeigt eine Identitätsspalte erstellen:

Table table erstellen (
column_name int identity
);

Der angegebene Spaltenwert oben wird automatisch generiert, wenn Sie einen neuen Datensatz hinzufügen.

Betrachten Sie das unten gezeigte einfache Beispiel:

Tabellenbenutzer erstellen (Benutzer
Id int Identität,
Nennen Sie Varchar (255)
);

Unter normalen Umständen müssen wir den Wert einer Identitätsspalte während des Dateneinsatzes nicht angeben. Wie bereits erwähnt, wird der Wert für jeden Datensatzeinsatz automatisch generiert, wie gezeigt:

In Benutzer einfügen (Name) Werte ('Dorothy Michelle');

Das obige sollte den Datensatz mit einem eindeutigen Wert für die ID -Spalte in die Tabelle einfügen. Zum Beispiel:

Beachten Sie, dass die ID -Spalte einen Wert enthält, obwohl wir keinen angegeben haben? Das ist die Kraft von Identitätsspalten.

SQL Server Ermöglichen

Aber was ist, wenn Sie versuchen, den Wert einer Identitätsspalte manuell hinzuzufügen? Zum Beispiel:

In Benutzer (ID, Name) Werte einfügen (2, 'Jeff Arty');

Die obige Abfrage gibt einen Fehler wie gezeigt zurück:

Der SQL Server verhindert, dass Sie einen Identitätsersatz explizit Werte hinzufügen.

Wir können dies beheben, indem wir die Identitätseinfügungsfunktion in SQL Server aktivieren.

Die Syntax für diesen Befehl ist wie gezeigt:

Setzen Sie Identity_insert table_name ein

Um die Identitätsinsert in der Tabelle der Benutzer zu aktivieren, können wir ausführen:

Setzen Sie Identity_insert -Benutzer auf;

Um den Wert auf eine bestimmte Tabelle zu deaktivieren, setzen Sie den Wert auf AUS ein.

Spalte SQL Server Redese Identity

Wenn Sie einen Datensatz aus der Tabelle löschen, wird der Spaltenwert der Identität nicht wiederverwendet. Dies kann zu Inkonsistenz und Fragmentierung in der Datenbank führen.

Sie können die Identitätsspalte synchronisieren, indem Sie sich wie im folgenden Befehl gezeigten erneut versammeln:

DBCC -CheckIdent (Table_Name, Reess, 1)

Die obige Abfrage sollte die Identitätsspalte der angegebenen Tabelle ab Index 1 neu säen.

Abschluss

In diesem Artikel haben wir die Identitätsspalte auf dem SQL -Server untersucht und wie man sie in einer Tabelle aktiviert oder deaktiviert.

Ich hoffe, Sie haben das hilfreich gefunden!