Sqlserver
 sql >> Database >  >> RDS >> Sqlserver

Come reimpostare il valore della colonna Identity nella tabella di SQL Server - Tutorial SQL Server/T-SQL Parte 43


Iniziamo prima con la comprensione della proprietà Identity e poi possiamo procedere al passaggio, come possiamo ripristinarla? Crea una tabella SQL Server con colonna Identity utilizzando lo script seguente

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

Inseriamo sotto i record usando le istruzioni sotto
INSERT INTO dbo.Person(name) 
VALUES ('Aamir')
INSERT INTO dbo.Person(Name)
VALUES ('Aamir Shahzad')
 
 Verrà inserito un solo record e il secondo record avrà esito negativo poiché la dimensione della stringa è maggiore della dimensione del tipo di dati della colonna Fig 1-Inserisci record nella tabella di SQL Server

Verifica l'identità Valore di una colonna: Per verificare il valore dell'identità di una colonna, possiamo utilizzare l'istruzione di seguito
--Check the Identity Value of a Column
DBCC CHECKIDENT ('dbo.Person');
 
Fig 2- DBCC CHECKIDENT to see the Identity Value


Anche l'inserimento non è riuscito per il secondo record, ma il valore di identità viene incrementato. Se inseriamo il record successivo, il valore di identità sarà 3 per quello, come possiamo vedere in Fig 3.

Ecco un paio di modi per reimpostare il valore di identità di una colonna dopo l'eliminazione dati.

Reimposta il valore dell'identità utilizzando TRUNCATE: Se vogliamo eliminare tutto dalla tabella e la tabella non ha alcuna relazione di chiave esterna, possiamo troncare la tabella e ciò pulirà anche i dati impostando il valore dell'identità Fig 3-Usa Tronca per pulire la tabella e reimpostare il valore dell'identità


Reimposta il valore dell'identità utilizzando DBCC CHECKIDENT: Se la tabella è in relazione con qualsiasi altra relazione tabella (chiave primaria-estranea), non saremo in grado di troncare la tabella. In tal caso dobbiamo eliminare i valori dalla tabella utilizzando l'istruzione Delete e quindi impostare il valore identity.
DBCC CHECKIDENT ('dbo.Person', RESEED, 0);
  Fig 4. Eliminare i dati dalla tabella e utilizzare DBCC CHECKIDENT per eseguire nuovamente il seeding del valore dell'identità

Video demo:come reimpostare il valore della colonna Identity nella tabella di SQL Server