OVH Cloud OVH Cloud

Ajouter l'attribut identity à une colonne

4 réponses
Avatar
François
Bonjour,

Je créée une table à l'aide d'un ordre select into pour basculer le contenu
d'une grosse table d'une base vers une autre. Je voudrais conserver les
valeurs de la cé primaire de l'ancienne base qui est un champ identity.
L'attribut identity n'est pas propogé avec le select into et ma colonne se
retrouve simplement de type int. Je cherche comment lui redonner l'attribut
identity. A première vue, un alter table alter column ne fonctionne pas.
Quelqu'un sait-il comment procéder ?

Une solution serait de créer le schéma de la table avant et de recopier la
contenu de la table par insert select, mais le journal des transactions
prend une claque car il y a beaucoup de lignes. A moins qu'on puisse
désactiver l'écriture dans le journal lors d'un insert select, mais je n'ai
pas trouvé non plus.

Merci pour votre aide.
François.

4 réponses

Avatar
Zoury
Salut françois! :O)

set identity_insert ma_table on -- permet l'ajout manuel
set identity_insert ma_table off -- empêche l'ajout manuel

--
Cordialement
Yanick Lefebvre - MVP pour Visual Basic
http://faq.vb.free.fr/?rubrique=0 - http://www.mvps.org/vbnet/
http://www.mentalis.org/agnet/apiguide.shtml - http://www.mztools.com/
Avatar
François
Merci pour ton aide, mais mon soucis ne concerne pas l'insertion manuelle de
valeurs dans une colonne identity, mais de modifier le format d'une colonne
de int à int identity.

François.

"Zoury" a écrit dans le message de
news:ORN$
Salut françois! :O)

set identity_insert ma_table on -- permet l'ajout manuel
set identity_insert ma_table off -- empêche l'ajout manuel

--
Cordialement
Yanick Lefebvre - MVP pour Visual Basic
http://faq.vb.free.fr/?rubrique=0 - http://www.mvps.org/vbnet/
http://www.mentalis.org/agnet/apiguide.shtml - http://www.mztools.com/




Avatar
Zoury
oh désolé!

Dans ce cas regarde du côté de la function Identity() elle permet de
spécifier une colonne identity lors d'un Select Into.
http://msdn.microsoft.com/library/en-us/tsqlref/ts_ia-iz_5to2.asp

--
Cordialement
Yanick Lefebvre - MVP pour Visual Basic
http://faq.vb.free.fr/?rubrique=0 - http://www.mvps.org/vbnet/
http://www.mentalis.org/agnet/apiguide.shtml - http://www.mztools.com/

"François" a écrit dans le message de
news:40c1d1b4$0$26913$
Merci pour ton aide, mais mon soucis ne concerne pas l'insertion manuelle


de
valeurs dans une colonne identity, mais de modifier le format d'une


colonne
de int à int identity.

François.

"Zoury" a écrit dans le message de
news:ORN$
> Salut françois! :O)
>
> set identity_insert ma_table on -- permet l'ajout manuel
> set identity_insert ma_table off -- empêche l'ajout manuel
>
> --
> Cordialement
> Yanick Lefebvre - MVP pour Visual Basic
> http://faq.vb.free.fr/?rubrique=0 - http://www.mvps.org/vbnet/
> http://www.mentalis.org/agnet/apiguide.shtml - http://www.mztools.com/
>
>




Avatar
Fred BROUARD
ALTER TABLE ALTER COLUMN ...

A +

François a écrit:
Bonjour,

Je créée une table à l'aide d'un ordre select into pour basculer le contenu
d'une grosse table d'une base vers une autre. Je voudrais conserver les
valeurs de la cé primaire de l'ancienne base qui est un champ identity.
L'attribut identity n'est pas propogé avec le select into et ma colonne se
retrouve simplement de type int. Je cherche comment lui redonner l'attribut
identity. A première vue, un alter table alter column ne fonctionne pas.
Quelqu'un sait-il comment procéder ?

Une solution serait de créer le schéma de la table avant et de recopier la
contenu de la table par insert select, mais le journal des transactions
prend une claque car il y a beaucoup de lignes. A moins qu'on puisse
désactiver l'écriture dans le journal lors d'un insert select, mais je n'ai
pas trouvé non plus.

Merci pour votre aide.
François.





--
Frédéric BROUARD, MVP SQL Server. Expert SQL / spécialiste Delphi, web
Livre SQL - col. Référence : http://sqlpro.developpez.com/bookSQL.html
Le site du SQL, pour débutants et pros : http://sqlpro.developpez.com
************************ www.datasapiens.com *************************