Maison >base de données >tutoriel mysql >Quand et comment devriez-vous utiliser IDENTITY_INSERT de SQL Server ?

Quand et comment devriez-vous utiliser IDENTITY_INSERT de SQL Server ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2025-01-09 09:03:42347parcourir

When and How Should You Use SQL Server's IDENTITY_INSERT?

Explication détaillée de IDENTITY_INSERT dans SQL Server 2008

Dans SQL Server, IDENTITY_INSERT est un paramètre clé qui détermine si la base de données accepte les valeurs explicites pour les colonnes d'identité. Lorsqu'elle est définie sur OFF, la base de données génère automatiquement des valeurs pour ces colonnes lors des opérations INSERT. Mais dans certains cas, il peut être nécessaire de régler IDENTITY_INSERT sur ON pour insérer la valeur manuellement.

Pourquoi désactiver et activer IDENTITY_INSERT ?

Une raison courante de désactiver IDENTITY_INSERT est de garantir l'intégrité des données. En empêchant l'insertion explicite de valeurs, la base de données garantit que des valeurs d'ID consécutives sont générées, réduisant ainsi le risque d'entrées en double. Toutefois, pour certaines tâches spécifiques, telles que l'importation de données à partir de sources externes, vous devrez peut-être attribuer manuellement des valeurs d'identité.

Activer IDENTITY_INSERT à l'aide d'une requête SQL

Pour activer IDENTITY_INSERT dans SQL Server 2008, exécutez la requête suivante :

<code class="language-sql">SET IDENTITY_INSERT Database.dbo.Baskets ON</code>

Remplacez "Database" et "dbo" par les noms de base de données et de schéma correspondants. Après avoir exécuté cette requête, vous pouvez procéder à l'insertion manuelle.

Gestion activée IDENTITY_INSERT dans le code

Même si l'utilisation des requêtes est activée IDENTITY_INSERT, si vous recevez toujours une erreur lors d'une opération INSERT, cela peut être dû au code de l'application. Assurez-vous que votre code ne tente pas de définir explicitement la colonne d'identité. Lorsque IDENTITY_INSERT est défini sur OFF, la base de données attribue automatiquement des valeurs quelles que soient les valeurs explicites spécifiées dans le code.

N'oubliez pas qu'après avoir terminé l'insertion manuelle, assurez-vous de remettre IDENTITY_INSERT sur OFF pour restaurer l'intégrité des données. Désactivez-le à l'aide de la requête suivante :

<code class="language-sql">SET IDENTITY_INSERT Database.dbo.Baskets OFF</code>

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