142 votes

IDENTITY_INSERT est défini sur OFF - Comment l'activer ?

J'ai une base de données d'archive de fichiers supprimés qui stocke l'ID du fichier qui a été supprimé. Je veux que l'administrateur puisse restaurer le fichier (ainsi que le même ID pour relier les fichiers). Je ne veux pas désactiver l'insertion d'identité sur l'ensemble de la table, car l'incrémentation de un fonctionne très bien. Dans ma procédure de stockage de TBL_Content j'ai quelque chose comme ceci

set ANSI_NULLS ON
set QUOTED_IDENTIFIER ON
SET IDENTITY_INSERT tbl_content ON
GO

ALTER procedure [dbo].[spInsertDeletedIntoTBLContent]
@ContentID int, 
...commande d'insertion...
SET IDENTITY_INSERT tbl_content OFF

Mais je continue à obtenir la même erreur :

Cannot insert explicit value for identity column in table 'TBL_Content' when IDENTITY_INSERT is set to OFF.

Une aide quelconque ?

7voto

Ankit Points 140

Ajoutez cette ligne au-dessus de votre requête

SET IDENTITY_INSERT tbl_content ON

4voto

Ajoutez également la mise en veille

SET IDENTITY_INSERT Genre ON

    INSERT INTO Genre(Id, Name, SortOrder)VALUES (12,'Moody Blues', 20) 

    SET IDENTITY_INSERT Genre OFF

1voto

Viorel Points 45

J'avais deux tables différentes et pour la première, l'insertion fonctionne bien mais pour la deuxième, une exception est soulevée concernant l'Insertion d'Identité. Le problème était que la table avait une colonne (int) en tant que clé étrangère non renseignée.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X