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 :

small int initialisé à zéro


Sujet :

MS SQL Server

  1. #1
    Membre habitué
    Inscrit en
    Août 2008
    Messages
    1 596
    Détails du profil
    Informations forums :
    Inscription : Août 2008
    Messages : 1 596
    Points : 175
    Points
    175
    Par défaut small int initialisé à zéro
    Bonjour, comment puis initialisé un attribut de type smallint à une valeur "zéro parv exemple" ?

    Merci

  2. #2
    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,

    A la création d'une table je suppose...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    CREATE TABLE test
    (
        ....
        champ SMALLINT NULL DEFAULT 0
    )
    ++

  3. #3
    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 : 42
    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,

    Pour ma part je préfère :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    CREATE TABLE test
    (
    	...
    	colonne SMALLINT NOT NULL CONSTRAINT DF_test_colonne DEFAULT 0
    )
    Si on met une contrainte de valeur par défaut, alors la colonne ne doit pas pouvoir prendre la valeur NULL.

    Le fait de nommer la contrainte permet de la retrouver facilement lorsque celle-ci est violée.

    Enfin une table ne contient pas :

    - des champs | fields, mais des colonnes
    - des enregistrements | records, mais des lignes.

    @++

  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
    Citation Envoyé par elsuket Voir le message
    Bonjour,

    Pour ma part je préfère :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    CREATE TABLE test
    (
    	...
    	colonne SMALLINT NOT NULL CONSTRAINT DF_test_colonne DEFAULT 0
    )
    Si on met une contrainte de valeur par défaut, alors la colonne ne doit pas pouvoir prendre la valeur NULL.

    Le fait de nommer la contrainte permet de la retrouver facilement lorsque celle-ci est violée.


    @++
    Je suis d'accord avec toi à condition qu'il ne faille effectivement pas pouvoir mettre de valeur null (à voir dans le contexte du problème...) mais c'est bien de proposer les 2 solutions !!!

    ++

  5. #5
    Membre habitué
    Inscrit en
    Août 2008
    Messages
    1 596
    Détails du profil
    Informations forums :
    Inscription : Août 2008
    Messages : 1 596
    Points : 175
    Points
    175
    Par défaut
    merci pour vos réponses, mais si ma table est déjà crée comment puis je altérer ce champs ?

  6. #6
    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 : 42
    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
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    ALTER TABLE maTable
    ADD CONSTRAINT DF_maTable_maColonne DEFAULT 0 FOR maColonne
    @++

  7. #7
    Membre habitué
    Inscrit en
    Août 2008
    Messages
    1 596
    Détails du profil
    Informations forums :
    Inscription : Août 2008
    Messages : 1 596
    Points : 175
    Points
    175
    Par défaut
    oui j'ai fait comme ca, la requette a réussie mais j'ai je trouve la valeur NULL dans la colonne

  8. #8
    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 : 42
    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
    Bonsoir,

    Poser une contrainte de valeur par défaut n'implique pas que la colonne ne peut pas comprendre NULL.
    Si vous souhaitez empêcher que votre colonne puisse contenir NULL, en posant en plus votre contrainte, vous devez écrire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    ALTER TABLE maTable
    ALTER COLUMN maColonne monType NOT NULL CONSTRAINT DF_maTable_maColonne DEFAUT 0
    Comme vous avez déjà posé votre contrainte, il vous suffit d'exécuter seulement :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    ALTER TABLE maTable
    ALTER COLUMN maColonne monType NOT NULL
    La contrainte demeurera. Cette commande peut lever une exception si votre colonne contient des NULL.
    A vous de voir par quoi vous voulez les remplacer :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    UPDATE maTable
    SET maColonne = uneValeur --(0 ?)
    WHERE maColonne IS NULL
    @++

  9. #9
    Membre habitué
    Inscrit en
    Août 2008
    Messages
    1 596
    Détails du profil
    Informations forums :
    Inscription : Août 2008
    Messages : 1 596
    Points : 175
    Points
    175
    Par défaut
    j'ai essayé il me dit
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Msg*156, Niveau*15, État*1, Ligne*3
    Syntaxe incorrecte vers le mot clé 'CONSTRAINT'.

  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 : 42
    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,

    Effectivement vous devez faire cela en deux étapes :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    ALTER TABLE maTable
    ALTER COLUMN maColonne INT NOT NULL 
     
    ALTER TABLE maTable
    ADD CONSTRAINT DF_maTable_maColonne DEFAULT 0 FOR maColonne
    @++

  11. #11
    Membre habitué
    Inscrit en
    Août 2008
    Messages
    1 596
    Détails du profil
    Informations forums :
    Inscription : Août 2008
    Messages : 1 596
    Points : 175
    Points
    175
    Par défaut
    ok c'est bon merciiiiiiiiiiiii

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Tester si un int a été initialisé
    Par duplatre dans le forum Débuter
    Réponses: 1
    Dernier message: 11/05/2011, 23h23
  2. Int commençant par zéro
    Par Arkentus dans le forum Débuter
    Réponses: 13
    Dernier message: 15/01/2011, 15h50
  3. Extraire éléments de date et les convertir en SMALL INT
    Par deviltaz dans le forum Requêtes
    Réponses: 4
    Dernier message: 27/05/2009, 10h27
  4. Ajouter des zéro à gauche dans un int
    Par abbd dans le forum Windows Forms
    Réponses: 4
    Dernier message: 16/02/2009, 21h25
  5. Réponses: 15
    Dernier message: 23/12/2006, 10h27

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