OVH Cloud OVH Cloud

Identity

2 réponses
Avatar
Pierre BOUSQUET
Bonjour,
Peut-on modifier une colonne de type INT en INT IDENTITY(X,1)
je n'y arrive pas avec un ALTER COLUMN

Merci d'avance

2 réponses

Avatar
Sylvain Lafontaine
Vous ne pouvez pas; si je ne me trompe pas.

Vous devez créer une nouvelle colonne, IDENTITY cette fois, copier toutes
les valeurs de la première colonne, détruire cette dernière et renommer
ensuite votre colonne IDENTITY avec le nom de la première.

À l'étape de la copie des valeurs de la colonne, vous devez utiliser une
clause:

SET IDENTITY_INSERT NomDeLaColonneIdentity ON

suivi d'un reset à OFF lorsque vous avez terminé:

SET IDENTITY_INSERT NomDeLaColonneIdentity OFF

Si vous voulez que votre colonne Identity soit à la même place que l'autre
plutôt que d'être à la fin de la table, vous devez alors créer une nouvelle
table, copier toutes vos valeurs dedans, effacer l'ancienne table et
renommer l'autre.

S. L.

"Pierre BOUSQUET" wrote in message
news:4166a77e$0$5454$
Bonjour,
Peut-on modifier une colonne de type INT en INT IDENTITY(X,1)
je n'y arrive pas avec un ALTER COLUMN

Merci d'avance




Avatar
Pierre BOUSQUET
merci

"Sylvain Lafontaine" <sylvain aei ca (fill the blanks, no spam please)> a
écrit dans le message de news:
Vous ne pouvez pas; si je ne me trompe pas.

Vous devez créer une nouvelle colonne, IDENTITY cette fois, copier toutes
les valeurs de la première colonne, détruire cette dernière et renommer
ensuite votre colonne IDENTITY avec le nom de la première.

À l'étape de la copie des valeurs de la colonne, vous devez utiliser une
clause:

SET IDENTITY_INSERT NomDeLaColonneIdentity ON

suivi d'un reset à OFF lorsque vous avez terminé:

SET IDENTITY_INSERT NomDeLaColonneIdentity OFF

Si vous voulez que votre colonne Identity soit à la même place que l'autre
plutôt que d'être à la fin de la table, vous devez alors créer une


nouvelle
table, copier toutes vos valeurs dedans, effacer l'ancienne table et
renommer l'autre.

S. L.

"Pierre BOUSQUET" wrote in message
news:4166a77e$0$5454$
> Bonjour,
> Peut-on modifier une colonne de type INT en INT IDENTITY(X,1)
> je n'y arrive pas avec un ALTER COLUMN
>
> Merci d'avance
>
>