Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

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

5 réponses
Avatar
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

5 réponses

Avatar
youpi
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" a écrit dans le message de news:
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




Avatar
mat
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!)
Avatar
Pascal F
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
Avatar
Pascal F
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
Avatar
Pascal F
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