IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

MS SQL Server Discussion :

aide sur le type unsigned zerofill


Sujet :

MS SQL Server

  1. #1
    Nouveau membre du Club
    Inscrit en
    Juin 2010
    Messages
    42
    Détails du profil
    Informations forums :
    Inscription : Juin 2010
    Messages : 42
    Points : 31
    Points
    31
    Par défaut aide sur le type unsigned zerofill
    bonjour a tous .
    j'ai un petit probleme avec sql serveur 2008 .
    je voudrais avoir un champ 'code_agc' qui soit de type tinyint unsigned zerofill
    c'est a dire que lorsque j'entre ( insert into agc values (001) )
    il me garde cette forme 001 et n'efface pas les deux zero
    ( 001 devient 1 ) .
    merci de bien vouloir me répondre .

  2. #2
    Rédacteur/Modérateur

    Avatar de Fabien Celaia
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Octobre 2002
    Messages
    4 224
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : Suisse

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Service public

    Informations forums :
    Inscription : Octobre 2002
    Messages : 4 224
    Points : 19 567
    Points
    19 567
    Billets dans le blog
    25
    Par défaut
    Si vous souhaitez maintenir à tout prix le 00, il vous faudra caster en char.
    001 en tinyint, c'est 1... donc no way... le reste n'est que de l'affichage... et ça, ce n'est pas le job de SQL...

  3. #3
    Nouveau membre du Club
    Inscrit en
    Juin 2010
    Messages
    42
    Détails du profil
    Informations forums :
    Inscription : Juin 2010
    Messages : 42
    Points : 31
    Points
    31
    Par défaut
    mais comment ça ce fait que sur mysql il y'a le truc unsigned zerofill qui garde les zeros ?
    d'aprés mes informations sql serveurs et le le numero 2 mondialement juste apres ORACLE il dois y avoir un moyen non ?

  4. #4
    Expert éminent sénior
    Avatar de mikedavem
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Août 2005
    Messages
    5 450
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Distribution

    Informations forums :
    Inscription : Août 2005
    Messages : 5 450
    Points : 12 891
    Points
    12 891
    Par défaut
    Bonsoir,

    Quand vous travaillez avec sqlserver vous travaillez avec des valeurs réelles. Ce que vous voulez doit être gérer cote client.

    Quel est l'intérêt de stocker de telles valeurs dans votre base ?

    ++

  5. #5
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 882
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 21 882
    Points : 53 070
    Points
    53 070
    Billets dans le blog
    6
    Par défaut
    Un SGBDR n'a pas vocation à faire de la cosmétique... Lisez ce que j'ai écrit à ce sujet : http://sqlpro.developpez.com/cours/sqlaz/erreurs/#L9

    A +

  6. #6
    Membre actif
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    240
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2008
    Messages : 240
    Points : 210
    Points
    210
    Par défaut
    Le tout est de le faire accepter.

  7. #7
    Nouveau membre du Club
    Inscrit en
    Juin 2010
    Messages
    42
    Détails du profil
    Informations forums :
    Inscription : Juin 2010
    Messages : 42
    Points : 31
    Points
    31
    Par défaut
    Citation Envoyé par Philippe Robert Voir le message
    Le tout est de le faire accepter.
    y'a comme meme un petit truc que je veux rajouter certe que je peux utilisé la methode bete mais moi je voulais savoir s'il y'avais moyen de faire ça proprement
    .
    on m'a demandé de faire une application qui concerne une banque et comme vous savez il y'a de la monnaie qui cercule et eux on des champs codé sur un nbre bien précis de position . pour ne pas galerer a faire a chaque fois l'ajouer des bit manquant par des zeros je me suis dis si c'est pas interessent de demander a des gens qui ont une bonne experience dans le domaine pour n'on seulement avoir une idée bien précise sur le fonctionnement de SQL serveu et puis faire agrandir mon disque dure avec des informations justes et valides .

    merci pour votre aide mesieurs ça m'été bien outil vos conseils d'expert .
    merci encore

  8. #8
    Expert éminent sénior
    Avatar de mikedavem
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Août 2005
    Messages
    5 450
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Distribution

    Informations forums :
    Inscription : Août 2005
    Messages : 5 450
    Points : 12 891
    Points
    12 891
    Par défaut
    Bonjour,

    SQL Server, comme on vous l'a dit, ne gère pas ce genre de données en natif.
    Comme le dit Fadace, il faudra convertir vos données dans un format de chaîne de caractères de type CHAR ou VARCHAR

    Vous pouvez le faire de cette façon si vous voulez vraiment avoir cela dans votre base (Il faudra le faire en fonction de votre longueur et de la valeur de votre "monnaie") :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    DECLARE @monnaie TINYINT
    SET @monnaie = 1
     
    SELECT '000' + CAST(monnaie AS CHAR(1)) AS format_monnaie
     
    format_monnaie 
     ----------------
        0001
    Cependant si vous voulez effectuer par la suite des opérations sur ces valeurs (ajouter des monnaies etc ...), il faudra refaire l'inverse, c'est à dire traiter à nouveau vos données pour pouvoir les convertir dans un type de données qui pourra être utilisé pour effectuer les opérations voulues. Ce qui est dommage ..
    De plus, selon le type de données choisi et vos valeurs, il est possible que ce format soit plus gourmand en matière de stockage.

    A vous de voir le pour et le contre ...
    Qu'en pensez vous ?

    ++

  9. #9
    Nouveau membre du Club
    Inscrit en
    Juin 2010
    Messages
    42
    Détails du profil
    Informations forums :
    Inscription : Juin 2010
    Messages : 42
    Points : 31
    Points
    31
    Par défaut
    oui maintenant que vous m'avez bien expliqué j'opterais pour ta solution ,
    enfait c pas bete de le faire si sql serveur ne le gere pas donc je trouve que c'est décidé je vais faire avec COST comme j'ai pas vraiment le choix on doit faire avec mais comme meme je trouve ça un peu dommage qu'un logiciel efficace de BDD ne puisse pas gerer ce detail .

    je remercie tous ce qu'on m'a aidé donc mon aventure SQL serveur si je peut me permettre de l'appeler comme ça . votre m'été d'une grande utilité .
    merci encore

  10. #10
    Modérateur

    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Janvier 2005
    Messages
    5 826
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2005
    Messages : 5 826
    Points : 12 371
    Points
    12 371
    Par défaut
    Bonjour,

    meme je trouve ça un peu dommage qu'un logiciel efficace de BDD ne puisse pas gerer ce detail .
    Ce que vous pouvez faire, c'est stocker ces valeurs sous le type TINYINT, et ajouter une colonne calculée, ou bien spécifier une vue qui vous "convertira" cet entier en chaîne de caractère sur le nombre de positions qui convient ...

    @++

Discussions similaires

  1. [XL-2010] Aide sur "erreur type"
    Par lionel94 dans le forum Macros et VBA Excel
    Réponses: 11
    Dernier message: 12/02/2015, 13h10
  2. Aide sur programme type questionnaire
    Par vinssoudu77 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 06/01/2014, 13h29
  3. Aide sur une requête de type WHERE..IN
    Par fabpan dans le forum SQL
    Réponses: 2
    Dernier message: 22/04/2009, 10h40
  4. Aide sur Warning: Illegal offset type in ...
    Par pounie dans le forum Langage
    Réponses: 5
    Dernier message: 03/01/2006, 13h13
  5. Aide sur la création d'un type simple (nom composite)
    Par testeur dans le forum PostgreSQL
    Réponses: 1
    Dernier message: 06/11/2004, 20h30

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo