Wie kann ich die Identitätsspalte in SQL Server zurücksetzen??

Wie kann ich die Identitätsspalte in SQL Server zurücksetzen??
In SQL Server bezieht sich eine Identitätsspalte auf eine Spalte.

In diesem Handbuch werden Sie vermittelt, wie Sie eine Identitätsspalte in SQL Server zurücksetzen können, sodass Sie in einer Spalte Identität falsch konfigurierte Werte zurücksetzen können.

SQL Server -Identität

Um einer Tabelle in SQL Server eine Identitätsspalte hinzuzufügen, verwenden Sie die Identitätsabfrage. Die Syntax für die Identitätsabfrage auf dem SQL -Server ist wie gezeigt:

Identität (Seed_Value, Increment_Interval);

Die Identitätsanfrage akzeptiert zwei Argumente:

  1. Der Seed_Value bezieht sich auf den Wert des ersten Datensatzes in der Tabelle.
  2. Increment_Interval - bezieht sich auf den spezifischen Wert, der dem vorherigen Datensatz in der Tabelle hinzugefügt wurde.

Standardmäßig werden die Saat- und Inkrementwerte auf 1 gesetzt. Daher hat der erste Datensatz in der Tabelle einen Wert von 1 und jeder Datensatz, der der Tabelle hinzugefügt wurde, um 1 hinzugefügt.

Identitätsspalte in SQL Server zurücksetzen

Lassen Sie uns nun lernen, wie Sie eine Identitätsspalte in SQL Server zurücksetzen und warum Sie dies möglicherweise tun müssen.

Erstellen Sie zunächst eine Beispieltabelle und geben Sie Daten ein, wie in den folgenden Abfragen gezeigt:

Tischinventar erstellen (
ID int Primärschlüsselidentität (1,1) nicht null,
product_name varchar (255),
Preis int,
Menge int
);
Einfügen in die Werte für Inventar (product_name, Preis, Menge) ein
('Smart Watch', 110.99, 5),
('MacBook Pro', 2500.00, 10),
('Wintermäntel', 657.95, 2),
('Office Desk', 800.20, 7),
('Löten Eisen', 56.10, 3),
('Telefonstativ', 8.95, 8);

Wir können jetzt die in der Tabelle gespeicherten Daten abfragen wie:

Wählen Sie * aus dem Inventar;

Die daraus resultierenden Datensätze sind wie gezeigt:

Beachten Sie die ID -Spalte; Obwohl wir die Werte in unserer Einfügeanweisung nicht angegeben haben, generiert die Identitätsfunktion den Wert automatisch ab 1 und steigt für jeden Datensatz, den wir einfügen.

Warum Identitätspalte zurücksetzen?

Sie können fragen, ob die Spalte Identität automatisch generierte Werte in einer bestimmten logischen Reihenfolge enthält, warum muss ich die Identitätsspalte zurücksetzen?

Schauen Sie sich an, was mit den Daten passiert, wenn wir einen Datensatz aus der Tabelle löschen:

Aus dem Inventar löschen, wobei die Menge = 7;

Die obige Beispielabfrage sollte einen Datensatz entfernen, bei dem die Menge gleich 7 ist.

Die Tabelle enthält nun die Aufzeichnungen als:

Wählen Sie * aus dem Inventar;

In den ID -Spalten haben wir die Werte, die von 1 bis 6 beginnen. Die ID von 4 fehlt jedoch. Dies geschieht, wenn wir einen Datensatz aus der Tabelle fallen lassen.

Um dies zu beheben, müssen wir die Identitätsspalte zurücksetzen.

Wie man die Identitätsspalte zurücksetzen

Um die Identitätsspalte in SQL Server zurückzusetzen, verwenden wir das DBCC -Checkindent -Verfahren.

Die Syntax des Prozedur ist wie:

Dbcc checkIdent ('table_name', reseD, new_value);

Wenn wir jedoch die Identitätsspalte zurücksetzen und versuchen, Daten einzufügen, gibt SQL Server einen Fehler zurück. Um dies zu lösen:

  • Erstellen Sie eine neue Tabelle, die als Sicherung des alten Tisches fungiert.
  • Entfernen Sie Daten aus der alten Tabelle
  • Setzen Sie die Identitätsspalte zurück
  • Nehmen Sie die Daten erneut in die neue Tabelle ein.

Eine Beispielabfrage, die die obigen Schritte implementiert, ist wie gezeigt:

Wählen Sie * in New_Inventory aus dem Inventar;
Aus dem Inventar löschen;
DBCC CheckIdent ('Inventory', Reess, 0);
Einfügen in das Inventar (product_name, Preis, Menge) aus product_name, Preis, Menge aus New_Inventory Order nach ID ASC;

Sobald die Abfragen erfolgreich ausgeführt wurden, können wir die Daten in der Inventartabelle untersuchen wie folgt:

Wählen Sie * aus dem Inventar;

Die resultierenden Tabellenaufzeichnungen sind wie gezeigt:

Hier befindet sich die Spalte der ID in der richtigen Reihenfolge.

Schließen

Diese Anleitung deckt die Grundlagen der Identitätsfunktion in SQL Server ab und zum Zurücksetzen einer Identitätsspalte bei Fehlern.