OVH Cloud OVH Cloud

Petite question

4 réponses
Avatar
Joël
Bonjour,

Je vous explique brievement ma situation. Je voudrais creer dans une table
un champ INT en auto increment. Jusque la pas de probleme. Mon problème est
en fait que je voudrais pour y inserer une lettre. Par exemple : A1 puis A2
etc.
J'ai beau chercher sur internet mais je ne trouve personne qui en parle. Je
me dis que peut-etre que ce n'est pas possible mais cela m'etonnerai. Je
précise que je débute sur SQL, j'étais habitué à Access. Merci de votre aide.

4 réponses

Avatar
Patrice
L'auto-incrémentation ne peut se faire que sur du numérique. Donc deux
solutions :
- gérer le pseudo auto-incrément soi-même
- revenir sur ce point (séparer par exemple la lettre dans un autre champ,
quelle est son rôle ?, peut on avoir B1 et A1 ? etc)

Cf par exemple http://sqlpro.developpez.com/cours/clefs/

Patrice




--

"Joël" a écrit dans le message de
news:
Bonjour,

Je vous explique brievement ma situation. Je voudrais creer dans une table
un champ INT en auto increment. Jusque la pas de probleme. Mon problème


est
en fait que je voudrais pour y inserer une lettre. Par exemple : A1 puis


A2
etc.
J'ai beau chercher sur internet mais je ne trouve personne qui en parle.


Je
me dis que peut-etre que ce n'est pas possible mais cela m'etonnerai. Je
précise que je débute sur SQL, j'étais habitué à Access. Merci de votre


aide.
Avatar
lionelp
Bonjour,

Et une colonne identity avec un pas de 1, puis une colonne calculée qui est
le résultat d'une conversion de l'identity concaténée à un caractère
quelconque.

Cordialement,
LionelP

"Joël" wrote:

Bonjour,

Je vous explique brievement ma situation. Je voudrais creer dans une table
un champ INT en auto increment. Jusque la pas de probleme. Mon problème est
en fait que je voudrais pour y inserer une lettre. Par exemple : A1 puis A2
etc.
J'ai beau chercher sur internet mais je ne trouve personne qui en parle. Je
me dis que peut-etre que ce n'est pas possible mais cela m'etonnerai. Je
précise que je débute sur SQL, j'étais habitué à Access. Merci de votre aide.


Avatar
Boss Hog
biensur,
tu créer un colonne qui contient le resultat de la concatenation
la question est peut tu faire l'operation en une passe, et j'en doute(ou
alors trigger).

je pense que la voie est:
/*
COLID serai la colonne identity(auto-increment)
FLDN sont les colonnes de ta table
ConcatCol serai la colonne ou tu stockerai le concat de la lettre et de l'ID
*/

insert matable(FLD1,,,,,FLDN) values('','','','','')
--puis un update
update matable
set ConcatCol = 'A' + @@IDENTITY WHERE COLID= @@IDENTITY

à voir si l'operation d'update peut etre faite dans un trigger ou une
regle(je pense plutot au trigger)

ou bien tu le gère dans ta PS d'update / insert

ouala
j'espère que cela va t'aider

@+
Boss Hog


""
@discussions.microsoft.com> wrote in message
news:
Bonjour,

Et une colonne identity avec un pas de 1, puis une colonne calculée qui


est
le résultat d'une conversion de l'identity concaténée à un caractère
quelconque.

Cordialement,
LionelP

"Joël" wrote:

> Bonjour,
>
> Je vous explique brievement ma situation. Je voudrais creer dans une


table
> un champ INT en auto increment. Jusque la pas de probleme. Mon problème


est
> en fait que je voudrais pour y inserer une lettre. Par exemple : A1 puis


A2
> etc.
> J'ai beau chercher sur internet mais je ne trouve personne qui en parle.


Je
> me dis que peut-etre que ce n'est pas possible mais cela m'etonnerai. Je
> précise que je débute sur SQL, j'étais habitué à Access. Merci de votre


aide.
Avatar
Boss Hog
Oupss !!!
salut j'ai oublier le convert(varchar(10),@@IDENTITY) pour la concatenation
de int avec du char
désolé.
@+
Boss Hog
"Boss Hog @tiscali.fr>" <bosshog<replace> wrote in message
news:%
biensur,
tu créer un colonne qui contient le resultat de la concatenation
la question est peut tu faire l'operation en une passe, et j'en doute(ou
alors trigger).

je pense que la voie est:
/*
COLID serai la colonne identity(auto-increment)
FLDN sont les colonnes de ta table
ConcatCol serai la colonne ou tu stockerai le concat de la lettre et de


l'ID
*/

insert matable(FLD1,,,,,FLDN) values('','','','','')
--puis un update
update matable
set ConcatCol = 'A' + @@IDENTITY WHERE COLID= @@IDENTITY

à voir si l'operation d'update peut etre faite dans un trigger ou une
regle(je pense plutot au trigger)

ou bien tu le gère dans ta PS d'update / insert

ouala
j'espère que cela va t'aider

@+
Boss Hog


""
@discussions.microsoft.com> wrote in message
news:
> Bonjour,
>
> Et une colonne identity avec un pas de 1, puis une colonne calculée qui
est
> le résultat d'une conversion de l'identity concaténée à un caractère
> quelconque.
>
> Cordialement,
> LionelP
>
> "Joël" wrote:
>
> > Bonjour,
> >
> > Je vous explique brievement ma situation. Je voudrais creer dans une
table
> > un champ INT en auto increment. Jusque la pas de probleme. Mon


problème
est
> > en fait que je voudrais pour y inserer une lettre. Par exemple : A1


puis
A2
> > etc.
> > J'ai beau chercher sur internet mais je ne trouve personne qui en


parle.
Je
> > me dis que peut-etre que ce n'est pas possible mais cela m'etonnerai.


Je
> > précise que je débute sur SQL, j'étais habitué à Access. Merci de


votre
aide.