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 :

Relation entre deux tables


Sujet :

MS SQL Server

  1. #1
    Membre du Club
    Homme Profil pro
    Technicien Help Desk
    Inscrit en
    Novembre 2017
    Messages
    81
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Technicien Help Desk

    Informations forums :
    Inscription : Novembre 2017
    Messages : 81
    Points : 52
    Points
    52
    Par défaut Relation entre deux tables
    Bonjour à tous.

    Débutant sur SQL-Server, j'ai créé une base de données dans laquelle j'ai créé des tables.

    Ma première table est composée de champs dont un champ ID_First PrimaryKey uniqueidentifier.
    Ma seconde table est composée de champs dont un champ ID_SEC PrimaryKey uniqueidentifier et un second champ FK_First int.

    J'aimerais faire une relation entre la première et la seconde table avec le champ ID_First (de la première table) et FK_First (de la seconde table).

    Le souci est que quand je créé ma relation, un message d'erreur apparaît : "Les propriétés suivantes du type de données de la colonne "PremiereTable.ID_First" ne correspondent pas à celles de "SecondeTable.FK_First."
    -Data type
    -Length
    -Precision "

    J'ai modifié le type de FK_First mais j'ai toujours de même problème.

    Pouvez-vous m'aider svp ..

    Merci par avance?

  2. #2
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 848
    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 848
    Points : 52 964
    Points
    52 964
    Billets dans le blog
    6
    Par défaut
    Bonjour,

    plusieurs choses dans votre discours.... D'abord la terminologie !

    1) une relation est un objet mathématique porteur de données. C'est une table dotés des propriété suivantes : une clef "primaire" ou une contrainte d'unicité non NULLable et doté d'aucune valeur inconnue (pas de NULL) et pour lesquelles toutes les valeurs sont atomiques. Certaines tables sont relationnelles (celles qui possèdent toutes les caractéristiques évoquées
    Le mot relation se référe à la définition suivante extraire du Larrousse :
    "Action de rapporter en détail ce dont on a été le témoin ou dont on a eu connaissance ; récit qu'on en fait : Faire la relation des événements auxquels on a participé."
    Cela n'a rien à voir avec un quelconque "lien" ! Malheureusement c'est une croyance couramment répandue et parfaitement idiote, les SGBDR n'ayant justement pas de lien pré établis

    2) la notion de champ , est une référence physique : champ de patate, champ visuel, champ de formulaire... Mais cela n'existe pas dans les SGBDR ou l'on parle de ligne, de colonne, de valeur... dans une table ou une relation...

    3) pour créer une contrainte d'intégrité référentielle 'et non une relation), le plus simple est de passer par une ligne de code comme ceci :
    ALTER TABLE maTableFille
    ADD CONSTRAINT LeNomDeMaContrainte
    FOREIGN KEY (liste_des_colonne_fille)
    REFERENCES maTable Mere (liste_des_colonnes_mere)

    Les types des colonnes devant être strictement identique entre les deux listes de colonnes et dans la même position.
    Dans votre cas, dans la seconde table vore colonne (et non champ) FK_First doit être de type UNIQUEIDENTIFIER et non en INT.

    Vous pouvez aussi choisir la règle de gestion de l'intégrité référentielle avec, au choix :
    ON UDPATE / DELETE SET NO ACTION / CASCADE / SET DEFAULT / SET NULL.


    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/ * * * * *

Discussions similaires

  1. [DEBUTANT]Problème de relation entre deux tables
    Par Yomane dans le forum Schéma
    Réponses: 2
    Dernier message: 20/10/2006, 01h30
  2. relation entre deux tables
    Par tojiji dans le forum Access
    Réponses: 6
    Dernier message: 04/07/2006, 14h44
  3. Problème de relation entre deux tables + autre chose
    Par Goth_sensei dans le forum Langage SQL
    Réponses: 7
    Dernier message: 30/03/2006, 20h49
  4. [XSD] Relation entre deux tables
    Par fd59 dans le forum Valider
    Réponses: 2
    Dernier message: 09/09/2005, 23h33
  5. Relation entre deux tables
    Par manel007 dans le forum Langage SQL
    Réponses: 5
    Dernier message: 04/03/2005, 16h54

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