sql >> Databáze >  >> RDS >> Sqlserver

Jak resetovat hodnotu sloupce identity v tabulce SQL Server - SQL Server / Výukový program T-SQL, část 43


Začněme nejprve pochopením vlastnosti Identity a poté můžeme přejít ke kroku, jak ji můžeme resetovat? Vytvořte SQL Server tabulku se sloupcem identity pomocí níže uvedeného skriptu

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

Pojďme vložit níže uvedené záznamy pomocí níže uvedených příkazů
INSERT INTO dbo.Person(name) 
VALUES ('Aamir')
INSERT INTO dbo.Person(Name)
VALUES ('Aamir Shahzad')
 
 Bude vložen pouze jeden záznam a druhý záznam se nezdaří, protože velikost řetězce je větší než velikost datového typu sloupce Obr. 1 – Vložení záznamů do tabulky serveru SQL

Zkontrolujte identitu Hodnota sloupce: Ke kontrole hodnoty identity sloupce můžeme použít níže uvedený příkaz
--Check the Identity Value of a Column
DBCC CHECKIDENT ('dbo.Person');
 
Fig 2- DBCC CHECKIDENT to see the Identity Value


I vložení se nezdařilo pro druhý záznam, ale hodnota identity se zvýší. Pokud vložíme další záznam, hodnota identity bude 3, jak vidíme na obrázku 3.

Zde je několik způsobů, jak resetovat hodnotu identity sloupce po smazání data.

Resetujte hodnotu identity pomocí TRUNCATE: Pokud chceme z tabulky smazat vše a tabulka nemá žádný vztah cizího klíče, můžeme tabulku zkrátit a tím vyčistíme data a také nastavíme hodnotu identity Obr. 3 – Použijte Zkrácení k vyčištění tabulky a resetování hodnoty identity


Obnovení hodnoty identity pomocí DBCC CHECKIDENT: Pokud je tabulka ve vztahu s jakoukoli jinou tabulkou (primární-cizí klíč), nebudeme moci tabulku zkrátit. V takovém případě musíme odstranit hodnoty z tabulky pomocí příkazu Delete a poté nastavit hodnotu identity.
DBCC CHECKIDENT ('dbo.Person', RESEED, 0);
  Obr 4. Odstraňte data z tabulky a pomocí DBCC CHECKIDENT znovu nasaďte hodnotu identity

Video ukázka:Jak resetovat hodnotu sloupce identity v tabulce SQL Server

  1. Jak získám Oracle SCHEMA jako skripty DDL s DBMS_METADATA (a SCHEMA_EXPORT)

  2. Jak COS() funguje v MariaDB

  3. Pochopení pohledů v SQL

  4. Limit podmínky MySQL IN