Formatage de champs pour cle primaire

bleuerouge Messages postés 12 Date d'inscription jeudi 7 janvier 2010 Statut Membre Dernière intervention 1 décembre 2014 - 13 juin 2006 à 14:42
cs_skweeky Messages postés 259 Date d'inscription mercredi 3 mai 2006 Statut Membre Dernière intervention 11 janvier 2010 - 15 juin 2006 à 15:48
    Bonjour,
pour inserer une nouelle ligne j'ai besoin que me clé primaire puisse etre composé d'une letre suivie de 12chiffre (style H000000000012 ) ,hors si j'arrive parfaiteme a incorporer la lettre , il n'en vas pas de meme des zero qui se font erradiquerà chaques fois :

J'ai bien fais ce bout de code, mais rien à faire , ca me done H13 et non H0000000000013

declare @primaire varchar (13)

set @primaire = (select max(right(id_unite,len(id_unite)-1)) from REF_UNITE);
set @primaire = @primaire +1
set @primaire= ( 'H' + convert(char(13),@primaire )

print @primare

quelqu'un pourrait t il me renseigner je ne connai pas tres bien le TSQL

2 réponses

cs_Malkuth Messages postés 268 Date d'inscription samedi 22 février 2003 Statut Membre Dernière intervention 24 avril 2013 4
13 juin 2006 à 15:14
Salut,
D'abord je te déconseille fortemement une clef primaire sur un champ varchar.

Sinon ceci devrait fonctionner.

declare @primaire varchar (13)
set @primaire = convert(varchar(13),(select max(CONVERT(int,right(id_unite,len(id_unite)-1))) from REF_UNITE)+1)
set @primaire= ( 'H' + REPLICATE('0',12 - len(@primaire)) + @primaire
print @primare
0
cs_skweeky Messages postés 259 Date d'inscription mercredi 3 mai 2006 Statut Membre Dernière intervention 11 janvier 2010 8
15 juin 2006 à 15:48
Ca aussi par exemple :

declare

@primaire varchar(13)
set @primaire='H'+RIGHT(REPLICATE('0', 12)+CAST(le_chiffre_a_transfomer asvarchar(12)), 12)
print @primaire
-----------------
Christian Robert
Winwise
0
Rejoignez-nous