Comment puis-je insérer un ID
dans une colonne d'identité dans SQL Server? Je vais faire un élément spécial dans ma table et je vais rapidement détecter cet élément par le ID
. Donc, parce que tous les autres ID sont plus grands ou égaux à un, je donnerai à cet élément spécial l'ID zéro.
Le problème est maintenant, lorsque j'ai créé cette table, j'ai placé l'identité de l'ID de colonne sur true. Si j'insère maintenant l'élément spécial avec le code ci-dessous, j'ai la prochaine erreur:
INSERT INTO MyTable(ID, Name, Description)
VALUES (0, 'Special title', 'special item');
Erreur:
Impossible d'insérer une valeur explicite pour la colonne d'identité dans la table
MyTable
lorsqueIDENTITY_INSERT
est défini surOFF
.
Comment puis-je modifier cette table, cette colonne ou cette propriété afin de pouvoir créer un enregistrement avec l'ID zéro?
L'insertion d'identité explicite requiert IDENTITY_INSERT
propriété définie sur ON.
SET IDENTITY_INSERT MyTable ON -- Statement Allows explicit values to be inserted into
-- the identity column of a table.
GO
INSERT INTO MyTable(ID, Name, Description)
VALUES (0, 'Special title', 'special item');
GO
SET IDENTITY_INSERT MyTable OFF -- Statement revert granted permission
GO
UTILISATION SET IDENTITY_INSERT TABLEnAME ON
N'oubliez pas de désactiver l'identité et qu'une seule table peut avoir identité_insertion à la fois