Maison >base de données >tutoriel mysql >Comment gérer IDENTITY_INSERT dans SQL Server 2008 ?

Comment gérer IDENTITY_INSERT dans SQL Server 2008 ?

Linda Hamilton
Linda Hamiltonoriginal
2025-01-09 08:46:44895parcourir

How to Manage IDENTITY_INSERT in SQL Server 2008?

Contrôle d'IDENTITY_INSERT dans SQL Server 2008

L'insertion de données dans des tables avec des colonnes d'identité dans SQL Server 2008 nécessite parfois de remplacer la génération automatique de valeurs d'identité. Tenter une insertion directe avec une valeur spécifiée lorsque IDENTITY_INSERT est désactivé entraînera une erreur.

Pour insérer des valeurs explicites, vous devez activer temporairement IDENTITY_INSERT. Cela se fait à l'aide de la commande T-SQL suivante :

<code class="language-sql">SET IDENTITY_INSERT DatabaseName.SchemaName.TableName ON;</code>

Remplacez DatabaseName, SchemaName et TableName par vos noms de base de données, de schéma et de table respectivement.

Vous pouvez désormais insérer des données avec une valeur spécifiée pour la colonne d'identité :

<code class="language-sql">INSERT INTO YourTable (IdentityColumn, Column2, Column3, ...)
VALUES (YourIdentityValue, Value2, Value3, ...);</code>

Essentiellement, toujours n'oubliez pas de désactiver IDENTITY_INSERT une fois vos insertions terminées :

<code class="language-sql">SET IDENTITY_INSERT YourTable OFF;</code>

Ne pas désactiver IDENTITY_INSERT peut entraîner des incohérences et des erreurs.

Vous pouvez également gérer ce paramètre via SQL Server Management Studio (SSMS). Localisez votre table dans l'Explorateur d'objets, cliquez avec le bouton droit, sélectionnez « Propriétés », accédez à l'onglet « Spécification d'identité » et cochez « Autoriser IDENTITY_INSERT ». Cependant, n'oubliez pas qu'il s'agit d'un équivalent graphique des commandes T-SQL ; le mécanisme sous-jacent reste le même. Le contrôle direct T-SQL offre plus de flexibilité programmatique.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn