[WD 11][SQL] Ajout d'une colonne en autoincrement

Le
Pascal F
Bonjour,
Je suis confronté à un problème que je n'arrive pas à résoudre.
Sur un projet que j'ai récupéré travaillant sur une base Access, je veux ajouter une colonne autoincrémentée qui me servira de
clé unique (il n'en existe pas, uniquement une clé étrangère avec doublons).
Je n'arrive pas à trouver la requete me permettant d'ajouter ce type de données.
D'après ce que j'ai trouvé sur http://sqlpro.developpez.com/cours/sqlaz/fondements/#L6 il me faudrait indiquer:

cReq=[
ALTER TABLE T_Historique ADD ID_Histo AUTOINC
]
mais à l'execution, j'ai une erreur du moteur Jet.
si je fait:

cReq=[
ALTER TABLE t_contact ADD ID_Contact Long
]
SI PAS SQLExec(cReq,"MaReq") ALORS
SQLInfoGene("MaReq")
Erreur(SQL.MesErreur,ErreurInfo(errLigne),ErreurInfo(errTraitement))
RENVOYER Faux
FIN
cReq=[
CREATE UNIQUE INDEX ID_Contact ON t_contact (ID_Contact)
]
SI PAS SQLExec(cReq,"MaReq") ALORS
SQLInfoGene("MaReq")
Erreur(SQL.MesErreur,ErreurInfo(errLigne),ErreurInfo(errTraitement))
RENVOYER Faux
FIN

ma colonne est bien créée, comme clé unique, mais pas d'incrémentation auto.

QUelqu'un aurait il une solution?
Merci.

--
Pascal
N0.pascal.SPAM@efpe.biz
Ne garder que le prénom pour me joindre
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
youpi
Le #14598631
je ne connais pas trop access mais il n'y a pas moyen d'appeler une
procédure (ou macro) sur insert ?
(te faire ton trigger en fait)

au passage, access ne doit pas etre abandonner au profit de SQLexpress ?

"Pascal F" 47021a05$0$32045$
Bonjour,
Je suis confronté à un problème que je n'arrive pas à résoudre.
Sur un projet que j'ai récupéré travaillant sur une base Access, je veux
ajouter une colonne autoincrémentée qui me servira de clé unique (il n'en
existe pas, uniquement une clé étrangère avec doublons).
Je n'arrive pas à trouver la requete me permettant d'ajouter ce type de
données.
D'après ce que j'ai trouvé sur
http://sqlpro.developpez.com/cours/sqlaz/fondements/#L6 il me faudrait
indiquer:

cReq=[
ALTER TABLE T_Historique ADD ID_Histo AUTOINC
]
mais à l'execution, j'ai une erreur du moteur Jet.
si je fait:

cReq=[
ALTER TABLE t_contact ADD ID_Contact Long
]
SI PAS SQLExec(cReq,"MaReq") ALORS
SQLInfoGene("MaReq")
Erreur(SQL.MesErreur,ErreurInfo(errLigne),ErreurInfo(errTraitement))
RENVOYER Faux
FIN
cReq=[
CREATE UNIQUE INDEX ID_Contact ON t_contact (ID_Contact)
]
SI PAS SQLExec(cReq,"MaReq") ALORS
SQLInfoGene("MaReq")
Erreur(SQL.MesErreur,ErreurInfo(errLigne),ErreurInfo(errTraitement))
RENVOYER Faux
FIN

ma colonne est bien créée, comme clé unique, mais pas d'incrémentation
auto.

QUelqu'un aurait il une solution?
Merci.

--
Pascal

Ne garder que le prénom pour me joindre




mat
Le #14598621
Pascal F wrote:
Bonjour,
Je suis confronté à un problème que je n'arrive pas à résoudre.
Sur un projet que j'ai récupéré travaillant sur une base Access, je veux
ajouter une colonne autoincrémentée qui me servira de clé unique (il
n'en existe pas, uniquement une clé étrangère avec doublons).
Je n'arrive pas à trouver la requete me permettant d'ajouter ce type de
données.




Bonsoir,

Peut-être une des deux idées suivants marchent:

sur http://www.utteraccess.com/forums/access/access7561896.html :

You can also add fields using SQL, ie:

ALTER TABLE tbl_ActiveAccounts ALTER COLUMN SomeID COUNTER(90,1)

start autonumber at 90


////////////////////////////////////

sur http://www.sqlteam.com/forums/topic.asp?TOPIC_IDT076 :


Alter Table Tbl_Txn_Line_CHS

add AutoNum Numeric(5,0) identity

Go to Top of Page

Kristen
Test

United Kingdom
14189 Posts

Posted - 08/21/2005 : 02:16:16 Show Profile Reply with Quote
That will do the trick. You might have been better off using an INT datatype

The NUMERIC will use 5 bytes, the INT only 4 and applications sometimes
cough on NUMERIC data type (I've never understood why, but I've seen it
all too often!)
Pascal F
Le #14598611
youpi vient de nous annoncer :
je ne connais pas trop access mais il n'y a pas moyen d'appeler une procédure (ou macro) sur insert ?
(te faire ton trigger en fait)

au passage, access ne doit pas etre abandonner au profit de SQLexpress ?



Merci de la réponse. Je ne peux modifier le type de base.

--
Pascal

Ne garder que le prénom pour me joindre
Pascal F
Le #14598601
Le 02/10/2007, mat a supposé :
Pascal F wrote:
Bonjour,
Je suis confronté à un problème que je n'arrive pas à résoudre.
Sur un projet que j'ai récupéré travaillant sur une base Access, je veux ajouter une colonne autoincrémentée qui me servira
de clé unique (il n'en existe pas, uniquement une clé étrangère avec doublons).
Je n'arrive pas à trouver la requete me permettant d'ajouter ce type de données.




Bonsoir,

Peut-être une des deux idées suivants marchent:

sur http://www.utteraccess.com/forums/access/access7561896.html :

You can also add fields using SQL, ie:

ALTER TABLE tbl_ActiveAccounts ALTER COLUMN SomeID COUNTER(90,1)

start autonumber at 90


////////////////////////////////////

sur http://www.sqlteam.com/forums/topic.asp?TOPIC_IDT076 :


Alter Table Tbl_Txn_Line_CHS

add AutoNum Numeric(5,0) identity

Go to Top of Page

Kristen
Test

United Kingdom
14189 Posts

Posted - 08/21/2005 : 02:16:16 Show Profile Reply with Quote
That will do the trick. You might have been better off using an INT datatype

The NUMERIC will use 5 bytes, the INT only 4 and applications sometimes
cough on NUMERIC data type (I've never understood why, but I've seen it
all too often!)



Merci. Je vais tester.

--
Pascal

Ne garder que le prénom pour me joindre
Pascal F
Le #14595151
mat a formulé ce mardi :
Pascal F wrote:
Bonjour,
Je suis confronté à un problème que je n'arrive pas à résoudre.
Sur un projet que j'ai récupéré travaillant sur une base Access, je veux ajouter une colonne autoincrémentée qui me servira
de clé unique (il n'en existe pas, uniquement une clé étrangère avec doublons).
Je n'arrive pas à trouver la requete me permettant d'ajouter ce type de données.




Bonsoir,

Peut-être une des deux idées suivants marchent:

sur http://www.utteraccess.com/forums/access/access7561896.html :

You can also add fields using SQL, ie:

ALTER TABLE tbl_ActiveAccounts ALTER COLUMN SomeID COUNTER(90,1)

start autonumber at 90


////////////////////////////////////

sur http://www.sqlteam.com/forums/topic.asp?TOPIC_IDT076 :


Alter Table Tbl_Txn_Line_CHS

add AutoNum Numeric(5,0) identity

Go to Top of Page

Kristen
Test

United Kingdom
14189 Posts

Posted - 08/21/2005 : 02:16:16 Show Profile Reply with Quote
That will do the trick. You might have been better off using an INT datatype

The NUMERIC will use 5 bytes, the INT only 4 and applications sometimes
cough on NUMERIC data type (I've never understood why, but I've seen it
all too often!)



Encore merci :D
la 1ère soluce m'a mis sur la voe et voici ce qui marche:
cReq=[
ALTER TABLE T_Historique ADD ID_Histo COUNTER
]
la modification d'une colonne en conteur n'étant pas acceptée par le moteur Jet.

--
Pascal

Ne garder que le prénom pour me joindre
Publicité
Poster une réponse
Anonyme