Insert d'identité SQL

Insert d'identité SQL
SQL Server nous fournit une clause d'identité qui vous permet de créer des colonnes série ou auto-incrément. Si une colonne est définie comme une colonne d'identité, ses valeurs sont générées automatiquement lorsque de nouveaux enregistrements sont ajoutés au tableau.

Cela vous donne la possibilité d'avoir un identifiant unique pour chaque colonne sans inspection de base de données manuelle.

Identité SQL Server

Dans SQL Server, vous pouvez créer une colonne d'identité comme indiqué:

Créer une table table_name (
colonnel_name int identité
));

La valeur de colonne spécifiée ci-dessus est générée automatiquement lorsque vous ajoutez un nouvel enregistrement.

Considérez l'exemple simple ci-dessous:

Créer des utilisateurs de table (
ID INTIDE,
Nom Varchar (255)
));

Dans des circonstances normales, nous n'avons pas besoin de spécifier la valeur d'une colonne d'identité pendant l'insert de données. Comme mentionné, la valeur est générée automatiquement pour chaque insert d'enregistrement comme indiqué:

Insérer dans les valeurs des utilisateurs (nom) («Dorothy Michelle»);

Ce qui précède doit insérer l'enregistrement dans le tableau avec une valeur unique pour la colonne ID. Par exemple:

Remarquez la colonne ID contient une valeur même si nous n'en avons pas spécifié? C'est le pouvoir des colonnes d'identité.

SQL Server autorise l'insert d'identité

Mais que se passe-t-il si vous essayez d'ajouter manuellement la valeur d'une colonne d'identité? Par exemple:

Insérer dans les utilisateurs (id, nom) Valeurs (2, «Jeff Arty»);

La requête ci-dessus renvoie une erreur comme indiqué:

SQL Server vous empêche de ajouter explicitement des valeurs à un insert d'identité.

Nous pouvons résoudre ce problème en permettant la fonction d'insertion d'identité dans SQL Server.

La syntaxe de cette commande est comme indiqué:

Définir l'identité_insert table_name sur

Pour activer l'insert d'identité sur la table des utilisateurs, nous pouvons s'exécuter:

Définissez les utilisateurs d'identité_insert sur;

Pour désactiver l'insert d'identité sur un tableau spécifique, définissez la valeur.

Colonne d'identité de réensemence SQL Server

Si vous supprimez un enregistrement du tableau, la valeur de la colonne de son identité n'est pas réutilisée. Cela peut entraîner une incohérence et une fragmentation dans la base de données.

Vous pouvez synchroniser la colonne d'identité par réensemencement comme indiqué dans la commande ci-dessous:

DBCC Checkident (table_name, réensemence, 1)

La requête ci-dessus doit réétendre la colonne d'identité du tableau spécifié à partir de l'index 1.

Conclusion

Dans cet article, nous avons exploré la colonne d'identité dans le serveur SQL et comment l'activer ou le désactiver dans un tableau.

J'espère que vous avez trouvé cela utile!