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 :

pb de clé étrangère


Sujet :

MS SQL Server

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Femme Profil pro
    Inscrit en
    Mars 2011
    Messages
    72
    Détails du profil
    Informations personnelles :
    Sexe : Femme

    Informations professionnelles :
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2011
    Messages : 72
    Par défaut pb de clé étrangère
    bonjour

    est ce que je peux créer une clé étrangère null dans une table créer en sql server ???



    merci

  2. #2
    Modérateur
    Avatar de Waldar
    Homme Profil pro
    Sr. Specialist Solutions Architect @Databricks
    Inscrit en
    Septembre 2008
    Messages
    8 454
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Sr. Specialist Solutions Architect @Databricks
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 8 454
    Par défaut
    Il suffit d'essayer :
    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
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    create table dbo.t1
    ( id1_t1  smallint identity(1,1) not null
    , id2_t1  smallint                   null
    , constraint pk_t1
        primary key (id1_t1)
    , constraint uk_t1
        unique (id2_t1)
    );
    -- Command(s) completed successfully.
     
    insert into dbo.t1 (id2_t1) values (1);
    -- (1 row(s) affected)
    insert into dbo.t1 (id2_t1) values (2);
    -- (1 row(s) affected)
    insert into dbo.t1 (id2_t1) values (null);
    -- (1 row(s) affected)
     
    create table dbo.t2
    ( id1_t2  smallint identity(1,1) not null
    , id2_t1  smallint                   null
    , constraint pk_t2
        primary key (id1_t2)
    , constraint fk_t2_t1
        foreign key (id2_t1)
        references dbo.t1 (id2_t1)
    );
    -- Command(s) completed successfully.
     
    insert into dbo.t2 (id2_t1) values (1);
    -- (1 row(s) affected)
    insert into dbo.t2 (id2_t1) values (2);
    -- (1 row(s) affected)
    insert into dbo.t2 (id2_t1) values (null);
    -- (1 row(s) affected)
     
    insert into dbo.t2 (id2_t1) values (3);
     
    The INSERT statement conflicted with the FOREIGN KEY constraint "fk_t2_t1". The conflict occurred in database, table "dbo.t1", column 'id2_t1'.
    The statement has been terminated.
    Attention toutefois, vous ne pouvez avoir qu'une seule valeur nulle si vous avez une contrainte d'unicité sur la colonne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    insert into dbo.t1 (id2_t1) values (null);
     
    Violation of UNIQUE KEY constraint 'uk_t1'. Cannot insert duplicate key in object 'dbo.t1'. The duplicate key value is (<NULL>).
    The statement has been terminated.

  3. #3
    Membre expérimenté
    Avatar de SQL_EVAN
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Juillet 2011
    Messages
    161
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Thaïlande

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

    Informations forums :
    Inscription : Juillet 2011
    Messages : 161
    Par défaut
    La réponse est oui, c'est possible. Du moment que la clé primaire de la table mère a une valeur NULL.

  4. #4
    Membre confirmé
    Femme Profil pro
    Inscrit en
    Mars 2011
    Messages
    72
    Détails du profil
    Informations personnelles :
    Sexe : Femme

    Informations professionnelles :
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2011
    Messages : 72
    Par défaut
    merci, pour vous réponses
    mais est ce que la clé primaire peut être NULL en sql???

  5. #5
    Modérateur
    Avatar de Waldar
    Homme Profil pro
    Sr. Specialist Solutions Architect @Databricks
    Inscrit en
    Septembre 2008
    Messages
    8 454
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Sr. Specialist Solutions Architect @Databricks
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 8 454
    Par défaut
    Une clef primaire étant une des clefs unique non nulle de la table, la réponse est non.

  6. #6
    Membre Expert Avatar de iberserk
    Homme Profil pro
    Architecte de base de données
    Inscrit en
    Novembre 2004
    Messages
    1 795
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Gironde (Aquitaine)

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

    Informations forums :
    Inscription : Novembre 2004
    Messages : 1 795
    Par défaut
    La réponse est oui, c'est possible. Du moment que la clé primaire de la table mère a une valeur NULL.
    ???

  7. #7
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 998
    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 998
    Billets dans le blog
    6
    Par défaut
    Citation Envoyé par Waldar Voir le message
    Une clef primaire étant une des clefs unique non nulle de la table, la réponse est non.
    Ah non mon cher... SQL exige de tout temps qu'une FK soit greffée sur une contrainte de type PK ou UNIQUE. En UNIQUE le nullable est possible !

    A +
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
    * * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 12/11/2003, 15h57
  2. [EJB2.1 Entity] [BES] Mapping automatique et clés étrangères
    Par Bobby McGee dans le forum Java EE
    Réponses: 3
    Dernier message: 15/10/2003, 10h33
  3. [clé primaire et étrangère]
    Par viny dans le forum Requêtes
    Réponses: 9
    Dernier message: 05/08/2003, 18h23
  4. clé primaire composée de 2 clés étrangères
    Par Tigresse dans le forum Installation
    Réponses: 5
    Dernier message: 28/07/2003, 14h38
  5. [Script]prob de clés étrangères
    Par Seb7 dans le forum Langage SQL
    Réponses: 13
    Dernier message: 08/07/2003, 17h37

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