Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

So setzen Sie den Identitätsspaltenwert in der SQL Server-Tabelle zurück – SQL Server / T-SQL-Lernprogramm Teil 43


Lassen Sie uns zunächst damit beginnen, die Identitätseigenschaft zu verstehen, und dann können wir mit Schritt fortfahren:Wie können wir sie zurücksetzen? Erstellen Sie eine SQL Server-Tabelle mit Identitätsspalte, indem Sie das folgende Skript verwenden

USE TEST
GO
CREATE TABLE dbo.Person( ID INT IDENTITY(1,1), Name VARCHAR(10))

Lassen Sie uns die folgenden Datensätze einfügen, indem Sie die folgenden Anweisungen verwenden
INSERT INTO dbo.Person(name) 
VALUES ('Aamir')
INSERT INTO dbo.Person(Name)
VALUES ('Aamir Shahzad')
 
 Es wird nur ein Datensatz eingefügt und der zweite Datensatz schlägt fehl, da die Größe der Zeichenfolge größer ist als die Größe des Spaltendatentyps Abb. 1 – Datensätze in SQL Server-Tabelle einfügen

Überprüfen Sie die Identität Wert einer Spalte: Um den Identitätswert einer Spalte zu überprüfen, können wir die folgende Anweisung
--Check the Identity Value of a Column
verwenden
DBCC CHECKIDENT ('dbo.Person');
 
Fig 2- DBCC CHECKIDENT to see the Identity Value


Sogar das Einfügen war für den zweiten Datensatz fehlgeschlagen, aber der Identitätswert wird erhöht. Wenn wir den nächsten Datensatz einfügen, ist der Identitätswert dafür 3, wie wir in Abb. 3 sehen können.

Hier sind einige Möglichkeiten, den Identitätswert einer Spalte nach dem Löschen zurückzusetzen Daten.

Identitätswert mit TRUNCATE zurücksetzen: Wenn wir alles aus der Tabelle löschen möchten und die Tabelle keine Fremdschlüsselbeziehung hat, können wir die Tabelle abschneiden, wodurch die Daten bereinigt und der Identitätswert festgelegt wird Abb. 3 – Verwenden Sie Truncate, um die Tabelle zu bereinigen und den Identitätswert zurückzusetzen


Identitätswert mit DBCC CHECKIDENT zurücksetzen: Wenn die Tabelle in Beziehung zu einer anderen Tabelle (Primär-Fremdschlüssel) steht, können wir die Tabelle nicht kürzen. In diesem Fall müssen wir die Werte mit der Delete-Anweisung aus der Tabelle löschen und dann den Identitätswert setzen.
DBCC CHECKIDENT ('dbo.Person', RESEED, 0);
  Abb. 4. Löschen Sie Daten aus der Tabelle und verwenden Sie DBCC CHECKIDENT, um den Identitätswert neu zu setzen

Video-Demo:So setzen Sie den Wert der Identitätsspalte in der SQL Server-Tabelle zurück