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 :

[débutant] conseils sur contraintes et alter table


Sujet :

MS SQL Server

  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    490
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 490
    Par défaut [débutant] conseils sur contraintes et alter table
    J'utilise sql server ,je débute et j'ai deux petites questions totalement différentes à poser (j'ai juste vu les create table et alter table pour l'instant pas encore les triggers... )

    donc voici ma première question :

    sur une table passager mettre une contrainte pour que la date de naissance soit < à la date du jour..comment faire pour la date du jour ? j'ai utilisé curent_timestamp est-ce bon ?

    CREATE table PASSAGER (
    IDPASSAGER numeric (3) not null, primary key,
    NOMPASSAGER char (40) not null,
    PRENOMPASSAGER char (40) not null,
    SEXEPASSAGER char (1) not null,
    DATENAISSPAS datetime not null,
    constraint C1_PASSAGER check (SEXPASSAGER in ('F','M')
    [color=red]constraint C2_PASSAGER check (DATENAISSPAS <current_timestamp)/color]

    et ma deuxième question :

    ALTER table cheval
    add constraint PK_cheval primary key (idcheval)
    add constraint FK_cheval foreign key (racecheval) references race (idrace)
    ça ne marche pas...seulement que je fais ceci :

    ALTER table cheval
    add constraint PK_cheval primary key (idcheval)
    ALTER table cheval
    add constraint FK_cheval foreign key (racecheval) references race (idrace)

    merci pour votre aide...

  2. #2
    Membre Expert Avatar de vttman
    Homme Profil pro
    Développeur "couteau mosellan"
    Inscrit en
    Décembre 2002
    Messages
    1 140
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur "couteau mosellan"
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2002
    Messages : 1 140
    Par défaut Re: [débutant] conseils sur contraintes et alter table
    Citation Envoyé par maysa
    J'utilise sql server ,je débute et j'ai deux petites questions totalement différentes à poser (j'ai juste vu les create table et alter table pour l'instant pas encore les triggers... )

    donc voici ma première question :

    sur une table passager mettre une contrainte pour que la date de naissance soit < à la date du jour..comment faire pour la date du jour ? j'ai utilisé curent_timestamp est-ce bon ?

    CREATE table PASSAGER (
    IDPASSAGER numeric (3) not null, primary key,
    NOMPASSAGER char (40) not null,
    PRENOMPASSAGER char (40) not null,
    SEXEPASSAGER char (1) not null,
    DATENAISSPAS datetime not null,
    constraint C1_PASSAGER check (SEXPASSAGER in ('F','M')
    [color=red]constraint C2_PASSAGER check (DATENAISSPAS <current_timestamp)/color]

    et ma deuxième question :

    ALTER table cheval
    add constraint PK_cheval primary key (idcheval)
    add constraint FK_cheval foreign key (racecheval) references race (idrace)
    ça ne marche pas...seulement que je fais ceci :

    ALTER table cheval
    add constraint PK_cheval primary key (idcheval)
    ALTER table cheval
    add constraint FK_cheval foreign key (racecheval) references race (idrace)

    merci pour votre aide...
    1 ère question
    M'est avis qu'une contrainte avec un current timestamp
    c pas viable car le
    current évolue dans le temps ...

    2ème question
    Qu'est ce qui t'embête :
    Que tu ne puisses pas poser 2 contraintes en 1 seul Alter ?

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    490
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 490
    Par défaut
    2. oui c'est ça. Je pensais qu'on pouvait mettre au moins 2 contraintes dans un alter. C'est pas possible alors ?

  4. #4
    Membre chevronné
    Inscrit en
    Août 2002
    Messages
    354
    Détails du profil
    Informations forums :
    Inscription : Août 2002
    Messages : 354
    Par défaut
    Slt,

    1 ère question
    M'est avis qu'une contrainte avec un current timestamp
    c pas viable car le
    current évolue dans le temps ...
    C'est normal que CURRENT_TIMESTAMP evolue dans le temps, c'est la date courante !!! tu peux utiliser aussi getdate() dans ta contrainte mais CURRENT_TIMESTAMP est normalise.

    a+

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    490
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 490
    Par défaut
    OK merci :o

  6. #6
    Membre Expert Avatar de vttman
    Homme Profil pro
    Développeur "couteau mosellan"
    Inscrit en
    Décembre 2002
    Messages
    1 140
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur "couteau mosellan"
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2002
    Messages : 1 140
    Par défaut
    Citation Envoyé par Gandalf Le Blanc
    Slt,

    1 ère question
    M'est avis qu'une contrainte avec un current timestamp
    c pas viable car le
    current évolue dans le temps ...
    C'est normal que CURRENT_TIMESTAMP evolue dans le temps, c'est la date courante !!! tu peux utiliser aussi getdate() dans ta contrainte mais CURRENT_TIMESTAMP est normalise.

    a+
    Oui c normal ...
    Mais mettre une contrainte fondée
    sur un champ mouvant (current)...
    Disons que j'ai du mal à me faire à l'idée !

  7. #7
    Membre chevronné
    Inscrit en
    Août 2002
    Messages
    354
    Détails du profil
    Informations forums :
    Inscription : Août 2002
    Messages : 354
    Par défaut
    Slt,

    Oui c normal ...
    Mais mettre une contrainte fondée
    sur un champ mouvant (current)...
    Disons que j'ai du mal à me faire à l'idée !
    Ok, je n'avais pas compris ta remarque !

    Faire cela a son utilite, une autre est de mettre une colonne datetime avec par defaut CURRENT_TIMESTAMP pour pouvoir tracer les insert dans ta table.

    a+

  8. #8
    Rédacteur
    Avatar de WOLO Laurent
    Homme Profil pro
    Architecte de base de données
    Inscrit en
    Mars 2003
    Messages
    2 741
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Congo-Brazzaville

    Informations professionnelles :
    Activité : Architecte de base de données
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2003
    Messages : 2 741
    Par défaut
    Première question
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    CREATE table PASSAGER ( 
    IDPASSAGER numeric (3) not null, primary key, 
    NOMPASSAGER char (40) not null, 
    PRENOMPASSAGER char (40) not null, 
    SEXEPASSAGER char (1) not null, 
    DATENAISSPAS datetime not null, 
    constraint C1_PASSAGER check (SEXPASSAGER in ('F','M'), 
    constraint DF_PASSAGER DEFAULT (GetDate()) for DATENAISSPAS
    )
    En fait, il s'agit d'une contrainte Default et non une contrainte Check.

    En ce qui concerne l'instruction alter,
    Vous pouvez ajouter autant de contraintes que souhaitées mais un seul add dans la clause.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    ALTER table cheval ADD
    constraint PK_cheval primary key (idcheval),
    constraint FK_cheval foreign key (racecheval) 
                                  references race (idrace) 
     
    ALTER table cheval ADD
    constraint PK_cheval primary key (idcheval) ,
    constraint FK_cheval foreign key (racecheval) 
                                  references race (idrace)
    J'espère bien que je ne suis hors sujet.

    Découvrez la FAQ de MS SQL Server.
    La chance accorde ses faveurs aux esprits avertis !

  9. #9
    Membre éclairé
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    490
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 490
    Par défaut
    Non non pas hors sujet !

    Merci beaucoup !!

  10. #10
    Rédacteur
    Avatar de WOLO Laurent
    Homme Profil pro
    Architecte de base de données
    Inscrit en
    Mars 2003
    Messages
    2 741
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Congo-Brazzaville

    Informations professionnelles :
    Activité : Architecte de base de données
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2003
    Messages : 2 741
    Par défaut
    Si vous voulez allez plus loin dans les détails, foncez sur cette page
    Alors bienvenu sur le forum SQL

    Découvrez la FAQ de MS SQL Server.
    La chance accorde ses faveurs aux esprits avertis !

  11. #11
    Membre éclairé
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    490
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 490
    Par défaut
    Oui je connais, j'ai le bouquin !

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

Discussions similaires

  1. [MLD] Conseil sur l'organisation de tables
    Par Eruvatar dans le forum Schéma
    Réponses: 3
    Dernier message: 12/11/2009, 15h28
  2. Débutant : conseil sur MCD
    Par AnneB dans le forum Schéma
    Réponses: 2
    Dernier message: 22/10/2008, 19h44
  3. pb vue sur contrainte d'une table donnée
    Par bb5477 dans le forum SQL
    Réponses: 7
    Dernier message: 11/01/2008, 15h47
  4. Réponses: 1
    Dernier message: 10/01/2007, 10h23
  5. [débutant] Conseil sur l'achat d'un Portable ..???
    Par blackhorus dans le forum Ordinateurs
    Réponses: 13
    Dernier message: 15/04/2005, 17h09

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