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

SQL Firebird Discussion :

changer de valeur par défaut


Sujet :

SQL Firebird

  1. #1
    Membre régulier
    Homme Profil pro
    Inscrit en
    Février 2005
    Messages
    100
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Secteur : Santé

    Informations forums :
    Inscription : Février 2005
    Messages : 100
    Points : 113
    Points
    113
    Par défaut changer de valeur par défaut
    Bonjour

    Je souhaiterais savoir comment modifier la valeur par défaut d'une colonne en utilisant un alter table sous firebird.
    J'ai bien constaté qu'on peut le faire au cours de la création de la colonne mais j'aurais besoin de le faire par une modification de la structure de la table. J'ai également vu que l'on peut changer la valeur par défaut du domaine mais cela ne convient pas à l'utilisation que je fais de ces domaines.
    J'ai bien essayé des instructions de ce style pourtant conforme à la norme SQL :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    alter table MaTable alter MaColonne set default MaValeurParDefaut
    .

    Mais cela ne fonctionne pas. De plus j'aimerais savoir s'il est possible d'affecter une valeur retournée par une UDF.
    Merci par avance et bon codage à tous,

    SillyCoder

  2. #2
    Membre habitué
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    147
    Détails du profil
    Informations personnelles :
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations forums :
    Inscription : Octobre 2004
    Messages : 147
    Points : 184
    Points
    184
    Par défaut
    Bonjour,

    Pourquoi tu n'utilises pas un trigger ?
    Mirmillon
    Au royaume des aveugles, les borgnes sont rois.

  3. #3
    Membre régulier
    Homme Profil pro
    Inscrit en
    Février 2005
    Messages
    100
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Secteur : Santé

    Informations forums :
    Inscription : Février 2005
    Messages : 100
    Points : 113
    Points
    113
    Par défaut
    C'est pas bête comme idée et j'y avais pensé mais le soucis c'est que la restructuration est automatisé et que par conséquent ce serait plus pratique de changer la valeur par défaut au cours de la restructuration.
    En tout cas merci pour la réponse .

  4. #4
    Membre régulier
    Homme Profil pro
    Inscrit en
    Février 2005
    Messages
    100
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Secteur : Santé

    Informations forums :
    Inscription : Février 2005
    Messages : 100
    Points : 113
    Points
    113
    Par défaut
    C'est fort, je résoud moi-même mes problèmes . En fait j'ai trouvé une astuce utilisée par IBExpert. Alors si un jour, vous être confronté au même problème que moi voici les requêtes SQL à exécuter pour obtenir un résultat similaire à celui escompté :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
     
    ALTER TABLE MaTable ADD IBE$$TEMP_COLUMN
     MonType DEFAULT MaValeur;
     
    UPDATE RDB$RELATION_FIELDS F1
    SET
    F1.RDB$DEFAULT_VALUE  = (SELECT F2.RDB$DEFAULT_VALUE
                             FROM RDB$RELATION_FIELDS F2
                             WHERE (F2.RDB$RELATION_NAME = 'MaTable') AND
                                   (F2.RDB$FIELD_NAME = 'IBE$$TEMP_COLUMN')),
    F1.RDB$DEFAULT_SOURCE = (SELECT F3.RDB$DEFAULT_SOURCE FROM RDB$RELATION_FIELDS F3
                             WHERE (F3.RDB$RELATION_NAME = 'MaTable ') AND
                                   (F3.RDB$FIELD_NAME = 'IBE$$TEMP_COLUMN'))
    WHERE (F1.RDB$RELATION_NAME = 'MaTable ') AND
          (F1.RDB$FIELD_NAME = 'MaColonne');
     
    ALTER TABLE MaTable DROP IBE$$TEMP_COLUMN;
    Cela sent la bidouille à plein nez et on doit passer par plusieurs requêtes et une colonne temporaire mais le fait est que cela fonctionne et c'est bien le résultat voulu.

    Bonne continuation à tous,

    SillyCoder

  5. #5
    dug
    dug est déconnecté
    Membre régulier
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    151
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 151
    Points : 84
    Points
    84
    Par défaut
    merci d'avoir marqué ta solus !!

    ça me dépanne bien

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 04/06/2014, 16h15
  2. [SQL Server 2008] changer encodage d'une valeur par défaut
    Par Idredeguerre dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 02/08/2012, 17h19
  3. Changer la valeur par défaut des namespaces
    Par Orphey dans le forum Visual Studio
    Réponses: 8
    Dernier message: 02/12/2010, 12h28
  4. Réponses: 7
    Dernier message: 03/12/2007, 14h03
  5. valeur par défaut à changer
    Par djulien19 dans le forum IHM
    Réponses: 2
    Dernier message: 10/03/2007, 14h05

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