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 :
SET IDENTITY_INSERT Database.dbo.Baskets ON
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 :
SET IDENTITY_INSERT Database.dbo.Baskets OFF
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!