sql >> Databasteknik >  >> RDS >> Sqlserver

Så här återställer du identitetskolumnvärde i SQL Server-tabell - SQL Server / T-SQL självstudie del 43


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

  1. Jämför datum lagrade som sträng med Datetime

  2. Övervakning av läs/skrivfördröjning

  3. Hur man inaktiverar alla utländska nyckelbegränsningar i SQL Server-databasen - SQL Server / TSQL självstudie del 77

  4. Hantera en PostgreSQL Commitfest