Sqlserver
 sql >> Base de données >  >> RDS >> Sqlserver

Comment réinitialiser la valeur de la colonne d'identité dans la table SQL Server - Tutoriel SQL Server / T-SQL Partie 43


Commençons d'abord par comprendre la propriété Identity, puis nous pouvons passer à l'étape, comment pouvons-nous la réinitialiser ? Créez une table SQL Server avec une colonne d'identité en utilisant le script ci-dessous

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

Insérons ci-dessous les enregistrements en utilisant les instructions ci-dessous
INSERT INTO dbo.Person(name) 
VALEURS ('Aamir')
INSERT INTO dbo.Person(Name)
VALEURS ('Aamir Shahzad')
 
 Un seul enregistrement sera inséré et le deuxième enregistrement échouera car la taille de la chaîne est supérieure à la taille du type de données de la colonne Fig 1-Insérer des enregistrements dans la table SQL Server

Vérifier l'identité Valeur d'une colonne : Pour vérifier la valeur d'identité d'une colonne, nous pouvons utiliser l'instruction ci-dessous
--Vérifier la valeur d'identité d'une colonne
DBCC CHECKIDENT ('dbo.Person');
 
Fig 2- DBCC CHECKIDENT pour voir la valeur d'identité


Même l'insertion a échoué pour le deuxième enregistrement mais la valeur d'identité est incrémentée. Si nous insérons le prochain enregistrement, la valeur d'identité sera 3 pour cela, comme nous pouvons le voir sur la figure 3.

Voici deux façons de réinitialiser la valeur d'identité d'une colonne après la suppression data.

Réinitialiser la valeur d'identité en utilisant TRUNCATE : Si nous voulons tout supprimer de la table et que la table n'a pas de relation de clé étrangère, nous pouvons tronquer la table et cela nettoiera les données ainsi que la valeur d'identité Fig 3-Utilisez Truncate pour nettoyer la table et réinitialiser la valeur d'identité


Réinitialiser la valeur d'identité à l'aide de DBCC CHECKIDENT : Si la table est en relation avec une autre relation de table (clé primaire-clé étrangère), nous ne pourrons pas tronquer la table. Dans ce cas, nous devons supprimer les valeurs de la table à l'aide de l'instruction Delete, puis définir la valeur d'identité.
DBCC CHECKIDENT ('dbo.Person', RESEED, 0);
  Fig 4. Supprimer les données de la table et utiliser DBCC CHECKIDENT pour réamorcer la valeur d'identité

Démo vidéo :comment réinitialiser la valeur de la colonne d'identité dans la table SQL Server