So setzen Sie den Startwert einer inkrementierenden Identität in SQL Server zurück

Bei der Arbeit mit Datenbanken in SQL Server können Situationen auftreten, in denen Sie den Startwert einer inkrementierenden Identität zurücksetzen müssen. Dies kann besonders nützlich sein, während der Entwicklungs- oder Testphasen, wenn Sie sicherstellen möchten, dass Ihre Daten frisch beginnen oder erneut durch einen bestimmten Wertebereich zirkulieren. In diesem Blogbeitrag werden wir den Prozess beschreiben, wie Sie den Startwert einer Identitätsspalte in SQL Server zurücksetzen, und Ihnen eine klare und prägnante Anleitung bieten.

Verständnis von Identitätsspalten

Bevor wir in die Schritte zum Zurücksetzen des inkrementierenden Identitätswerts eintauchen, lassen Sie uns kurz erklären, was eine Identitätsspalte ist:

  • Identitätsspalte: Eine Identitätsspalte ist eine spezielle Spalte in einer SQL Server-Tabelle, die automatisch eine fortlaufende Nummer generiert, wann immer eine neue Zeile hinzugefügt wird. Typischerweise wird diese Spalte mit der IDENTITY-Eigenschaft definiert.

Wenn Sie eine Tabelle mit einer Identitätsspalte erstellen, könnte das so aussehen:

CREATE TABLE BeispielTabelle (
    ID INT IDENTITY(1,1) PRIMARY KEY,
    Name VARCHAR(50)
);

In diesem Beispiel hat die erste Zeile eine ID von 1, die zweite Zeile hat eine ID von 2 und so weiter, inkrementierend um 1. Manchmal möchten Sie jedoch diese Sequenz auf eine bestimmte Zahl—häufig 0 oder 1—zurücksetzen, aus verschiedenen Gründen, wie beispielsweise beim Neuladen von Testdaten.

Zurücksetzen des Identitätswerts

Um den Startwert einer Identitätsspalte in SQL Server zurückzusetzen, können Sie den Befehl DBCC CHECKIDENT verwenden. Hier ist eine detaillierte Anleitung, wie Sie es tun:

Schritt 1: Identifizieren Sie Ihre Tabelle

Bevor Sie Änderungen vornehmen, identifizieren Sie die Tabelle, deren Identitätsspalte Sie zurücksetzen möchten. Für diese Anleitung nehmen wir an, Ihre Tabelle heißt TabelleName.

Schritt 2: Verwenden Sie den DBCC CHECKIDENT-Befehl

Die Befehlsyntax zum Zurücksetzen des Identitätswerts ist unkompliziert:

DBCC CHECKIDENT('TabelleName', RESEED, 0);
  • DBCC CHECKIDENT: Dieser Befehl überprüft den aktuellen Identitätswert für die angegebene Tabelle und kann ihn bei Bedarf zurücksetzen.
  • ‘TabelleName’: Ersetzen Sie dies durch den tatsächlichen Namen Ihrer Tabelle.
  • RESEED: Dieses Schlüsselwort gibt an, dass Sie den Startwert zurücksetzen möchten.
  • 0: Dies ist der neue Startwert für die Identitätsspalte. Sie können ihn auf den Wert ändern, der Ihren Anforderungen entspricht, beachten Sie jedoch, dass die erste eingefügte Zeile nach diesem Befehl diesen Wert übernimmt und von dort aus inkrementiert.

Schritt 3: Bestätigen Sie das Zurücksetzen

Um zu bestätigen, dass der Identitätswert zurückgesetzt wurde, fügen Sie einfach eine neue Zeile in die Tabelle ein und überprüfen Sie die ID-Werte:

INSERT INTO TabelleName (Name) VALUES ('Testeintrag');
SELECT * FROM TabelleName;

Sie sollten sehen, dass der neue Eintrag eine ID von 1 (oder 0, je nachdem, welchen Wert Sie für RESEED festgelegt haben) hat, falls dies Ihr festgelegter Startpunkt war.

Fazit

Das Zurücksetzen des Startwerts einer inkrementierenden Identität in SQL Server ist ein unkomplizierter Prozess mithilfe des Befehls DBCC CHECKIDENT. Diese Fähigkeit ist besonders vorteilhaft während der Test- oder Entwicklungsphasen, da sie Ihnen ermöglicht, Ihren Arbeitsablauf zu optimieren, indem Sie sicherstellen, dass Identifikatoren konsistent und vorhersehbar sind.

Jetzt haben Sie eine solide Vorlage zum Zurücksetzen von Identitätsspalten zur Hand. Viel Spaß beim Programmieren!