2010-06-18 4 views
0

si je tente d'ajouter des données dans mon erreur de table se produit:Comment puis-je résoudre "Une valeur explicite pour la colonne d'identité dans la table"?

Erreur: Msg 8101, niveau 16, état 1, ligne 1 Une valeur explicite pour la colonne d'identité dans la table « ENG_PREP » ne peut être spécifié lorsqu'une liste de colonnes est utilisée et IDENTITY_INSERT sur ON.

insert into ENG_PREP VALUES('572012-01-1,572012-01-2,572012-01-3,572013-01-1,572013-01-2', 
'', 
'500', 
'', 
'A320 P.001-A', 
'Removal of the LH Wing Safety Rope', 
'', 
'', 
'', 
'0', 
'', 
'AF', 
'12-00-00-081-001', 
'', 
'', 
'', 
'', 
'', 
'', 
'') 
+0

Il semble que vous essayez de définir la valeur d'une colonne d'identité, mais sans la définition de la table, je ne peux pas être sûr à 100%. – ChrisF

Répondre

1

Si vous devez écrire à la colonne d'identité, utilisez

SET IDENTITY_INSERT YourTableName ON 

comme le message d'erreur suggère.

Sinon, n'essayez pas d'écrire dans la colonne d'identité.

0

Votre déclaration

insert into ENG_PREP 

va essayer d'insérer des valeurs dans toutes les colonnes de votre table - y compris la colonne IDENTITY, vous ne devriez jamais une valeur spécifique.

Ce que vous devez faire est de spécifier les colonnes de votre table que vous voulez vraiment insérer des valeurs dans, et laisser la colonne IDENTITY - qui va être géré automatiquement par SQL Server lui-même:

INSERT INTO dbo.ENG_PREP(column1, column2, ...., columnX) 
VALUES(values1, values2, ...., valuesX) 

Vous il suffit de spécifier les colonnes pour lesquelles vous voulez vraiment définir une valeur (par exemple, vous pouvez probablement ignorer la plupart de ces colonnes où vous insérez simplement un '' dans votre exemple).

Questions connexes