Låt oss börja med att förstå identitetsegenskapen först och sedan kan vi gå vidare till steg, hur kan vi återställa den? Skapa en SQL Server-tabell med identitetskolumn genom att använda skriptet nedan
USE TEST GO
CREATE TABLE dbo.Person( ID INT IDENTITY(1,1), Name VARCHAR(10))
Låt oss infoga nedanstående poster genom att använda nedanstående uttalanden
INSERT INTO dbo.Person(name)
VALUES ('Aamir')
INSERT INTO dbo.Person(Name)
VALUES ('Aamir Shahzad')
Endast en post kommer att infogas och den andra posten kommer att misslyckas eftersom storleken på strängen är större än storleken på kolumndatatypen Fig 1 – Infoga poster i SQL Server-tabell
Kontrollera identiteten Värde på en kolumn: För att kontrollera identitetsvärdet för en kolumn kan vi använda nedanstående uttalande
--Check the Identity Value of a Column
DBCC CHECKIDENT ('dbo.Person');
Fig 2- DBCC CHECKIDENT to see the Identity Value
T och med infogningen misslyckades för den andra posten men identitetsvärdet ökas. Om vi kommer att infoga nästa post kommer identitetsvärdet att vara 3 för det som vi kan se i Fig 3.
Här är några sätt att återställa identitetsvärdet för en kolumn efter borttagning data.
Återställ identitetsvärde genom att använda TRUNCATE: Om vi vill ta bort allt från tabell och tabell inte har någon främmande nyckelrelation, kan vi Trunkera tabell och det kommer att rensa data samt ställa in identitetsvärdet Fig 3-Använd Truncate för att rensa tabell och återställa identitetsvärde
Återställ identitetsvärde genom att använda DBCC CHECKIDENT: Om tabellen är i relation till någon annan tabellrelation (primär-utländsk nyckel) kommer vi inte att kunna trunkera tabellen. I så fall måste vi ta bort värdena från tabellen genom att använda Delete-satsen och sedan ställa in identitetsvärdet.
DBCC CHECKIDENT ('dbo.Person', RESEED, 0);
Fig 4. Ta bort data från tabellen och använd DBCC CHECKIDENT för att återställa identitetsvärdet
Videodemo :Hur man återställer identitetskolumnvärde i SQL Server-tabell