Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

Jak zresetować wartość kolumny tożsamości w tabeli SQL Server — samouczek SQL Server / T-SQL, część 43


Zacznijmy od zrozumienia właściwości Identity, a następnie przejdźmy do kroku, jak możemy ją zresetować? Utwórz tabelę SQL Server z kolumną tożsamości, używając poniższego skryptu

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

Wstawmy poniższe rekordy, używając poniższych instrukcji
INSERT INTO dbo.Person(name) 
VALUES ('Aamir')
INSERT INTO dbo.Person(Name)
VALUES ('Aamir Shahzad')
 
 Tylko jeden rekord zostanie wstawiony, a drugi rekord nie powiedzie się, ponieważ rozmiar ciągu jest większy niż rozmiar typu danych kolumny Rys 1 - Wstaw rekordy w tabeli SQL Server

Sprawdź tożsamość Wartość kolumny: Aby sprawdzić wartość tożsamości kolumny, możemy użyć poniższej instrukcji
--Check the Identity Value of a Column
DBCC CHECKIDENT ('dbo.Person');
 
Fig 2- DBCC CHECKIDENT to see the Identity Value


Nawet wstawienie drugiego rekordu nie powiodło się, ale wartość tożsamości została zwiększona. Jeśli wstawimy kolejny rekord, wartość tożsamości będzie wynosić 3, jak widać na rys. 3.

Oto kilka sposobów na zresetowanie wartości tożsamości kolumny po usunięciu dane.

Zresetuj wartość tożsamości za pomocą funkcji TRUNCATE: Jeśli chcemy usunąć wszystko z tabeli, a tabela nie ma żadnej relacji klucza obcego, możemy Obciąć tabelę, co wyczyści dane, a także ustawi wartość tożsamości Ryc. 3 – Użyj funkcji Obcinanie, aby wyczyścić tabelę i zresetować wartość tożsamości


Zresetuj wartość tożsamości za pomocą polecenia DBCC CHECKIDENT: Jeśli tabela jest w relacji z jakąkolwiek inną relacją (Primary-Foreign Key), nie będziemy mogli obciąć tabeli. W takim przypadku musimy usunąć wartości z tabeli za pomocą instrukcji Delete, a następnie ustawić wartość tożsamości.
DBCC CHECKIDENT ('dbo.Person', RESEED, 0);
  Rys 4. Usuń dane z tabeli i użyj polecenia DBCC CHECKIDENT, aby ponownie umieścić wartość tożsamości 

Wideo demonstracyjne:Jak zresetować wartość kolumny tożsamości w tabeli SQL Server

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Nie można zalogować się do SQL Server + SQL Server Authentication + Błąd:18456

  2. Jak aktywnie gromadzić informacje o fragmentacji indeksów SQL Server

  3. Czy mogę mieć klucz obcy odwołujący się do kolumny w widoku w SQL Server?

  4. Jak wybrać pierwszy dzień miesiąca w SQL?

  5. Które zapytanie SQL jest szybsze? Filtruj według kryteriów przyłączenia lub klauzuli Gdzie?