Maîtriser IDENTITY_INSERT dans SQL Server 2008
Ce guide clarifie l'utilisation de IDENTITY_INSERT
dans SQL Server 2008, aborde les problèmes courants et propose des solutions.
Problème : insérer des erreurs avec IDENTITY_INSERT OFF
Le paramètre IDENTITY_INSERT
de SQL Server indique si vous pouvez attribuer manuellement des valeurs aux colonnes d'identité lors des insertions. Lorsque IDENTITY_INSERT
est OFF
(valeur par défaut), les colonnes d'identité s'incrémentent automatiquement, empêchant l'attribution manuelle de valeurs. Tenter d'insérer une ligne avec une valeur spécifiée pour une colonne d'identité entraînera une erreur.
Solution : Activation et désactivation d'IDENTITY_INSERT
Bien que SQL Server Management Studio (SSMS) puisse être utilisé, l'emploi direct de commandes T-SQL dans la console de base de données ou dans l'éditeur de requêtes est plus efficace.
Erreur courante : oublier de désactiver IDENTITY_INSERT
Rappelez-vous : après avoir activé IDENTITY_INSERT
à l'aide de SET IDENTITY_INSERT ... ON
, toujours désactivez-le avec SET IDENTITY_INSERT ... OFF
. Ne pas le faire permet l'attribution manuelle de valeurs pour les insertions ultérieures, provoquant potentiellement des conflits si votre application repose sur un comportement d'auto-incrémentation.
Syntaxe T-SQL correcte
Voici la syntaxe appropriée :
Activer :
<code class="language-sql">SET IDENTITY_INSERT YourTableWithIdentityColumn ON;</code>
Désactiver :
<code class="language-sql">SET IDENTITY_INSERT YourTableWithIdentityColumn OFF;</code>
Comprendre les messages d'erreur
L'erreur "Impossible d'insérer une valeur explicite pour la colonne d'identité dans la table 'YourTableWithIdentityColumn' lorsque IDENTITY_INSERT est défini sur OFF" indique une tentative d'insertion d'une valeur prédéfinie dans une colonne d'identité alors que IDENTITY_INSERT
est désactivé.
Cette clarté améliorée devrait aider les utilisateurs à éviter les pièges courants lorsqu'ils travaillent avec IDENTITY_INSERT
. N'oubliez jamais de l'éteindre après utilisation.
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!