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

Développement SQL Server Discussion :

Où sont cachées les Clés des tables ?


Sujet :

Développement SQL Server

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    430
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2006
    Messages : 430
    Points : 103
    Points
    103
    Par défaut Où sont cachées les Clés des tables ?
    Bonjour

    J'ai une base de donnée qui contient plusieurs tables et j'aimerais connaitre si ces tables ont des clés primaires ou non.

    C'est que visiblement je ne les vois pas.

    Est-ce qu'il y a une autre place où je peux aller pour les voir ?

    Bases de données : SQL Server 2000

    Si admettons que ces tables n'ont pas de clée primaires enregistrées dans le SGBDR, est-ce que ça serait possible de les déclarer dans l'application VB 6 qui utilise cette bases de données ? si oui, comment ?

    Merci.

  2. #2
    Modérateur
    Avatar de Chtulus
    Homme Profil pro
    Ingénieur
    Inscrit en
    Avril 2008
    Messages
    3 094
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Santé

    Informations forums :
    Inscription : Avril 2008
    Messages : 3 094
    Points : 8 678
    Points
    8 678
    Par défaut
    Bonjour,

    Manière Normative (Merci SQLPro )

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    SELECT COLUMN_NAME
    FROM   INFORMATION_SCHEMA.TABLE_CONSTRAINTS AS TC
           INNER JOIN INFORMATION_SCHEMA.KEY_COLUMN_USAGE AS KCU
                 ON TC.CONSTRAINT_SCHEMA = KCU.CONSTRAINT_SCHEMA
                    AND TC.CONSTRAINT_NAME = KCU.CONSTRAINT_NAME
    WHERE  TC.CONSTRAINT_TYPE = 'PRIMARY KEY'
      AND  TC.TABLE_SCHEMA = ???
      AND  TC.TABLE_NAME = ???
    
    Avec Procédure
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    EXEC sp_pkeys @table_name='MaTable'
    « Je ne cherche pas à connaître les réponses, je cherche à comprendre les questions. »
    - Confucius -

    Les meilleurs cours, tutoriels et Docs sur les SGBD et le SQL
    Tous les cours Office
    Solutions d'Entreprise



  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    430
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2006
    Messages : 430
    Points : 103
    Points
    103
    Par défaut
    Citation Envoyé par Chtulus Voir le message
    Bonjour,

    Manière Normative (Merci SQLPro )

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    SELECT COLUMN_NAME
    FROM   INFORMATION_SCHEMA.TABLE_CONSTRAINTS AS TC
          INNER JOIN INFORMATION_SCHEMA.KEY_COLUMN_USAGE AS KCU
                ON TC.CONSTRAINT_SCHEMA = KCU.CONSTRAINT_SCHEMA
                   AND TC.CONSTRAINT_NAME = KCU.CONSTRAINT_NAME
    WHERE  TC.CONSTRAINT_TYPE = 'PRIMARY KEY'
     AND  TC.TABLE_SCHEMA = ???
     AND  TC.TABLE_NAME = ???
    
    Avec Procédure
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    EXEC sp_pkeys @table_name='MaTable'
    Merci pour ta réponse. Oui lorsque j'exécute avec procédure ca me donne la clé pour les tables qui possèdent une clé (et on peut voir ca, en affichant les propriétes de la table aussi).

    Mais pour les tables qui n'affichent pas de clé (ni avec la procédure, ni avec les propriétés), il semble que elles aussi possédent des clés. Est-ce possible que ca soit déterminer dans le code de l'application qui utilise cette bases de données ?

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

    Il y a aussi les contraintes de clé étrangères, que vous trouverez avec la requête que vous a donné Chtulus en remplaçant PRIMARY KEY par FOREIGN KEY.

    Jetez un œil à la documentation

    @++

  5. #5
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 768
    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 768
    Points : 52 719
    Points
    52 719
    Billets dans le blog
    5
    Par défaut
    Mais pour les tables qui n'affichent pas de clé (ni avec la procédure, ni avec les propriétés), il semble que elles aussi possédent des clés. Est-ce possible que ca soit déterminer dans le code de l'application qui utilise cette bases de données ?
    Non, il n'y a pas de clef dans ce cas !
    Il n'existe pas de clef caché.
    Par nature SQL est ensembliste, ce qui veut dire que dans une table sans clef il est impossible de distinguer des doublons.

    Lisez ce que j'ai écrit à ce sujet :
    http://blog.developpez.com/sqlpro?ti..._sont_des_ense

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

  6. #6
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    430
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2006
    Messages : 430
    Points : 103
    Points
    103
    Par défaut
    Ok merci bien Elsuket et SQLpro pour vos précisions.

    En fait il peut exister des tables sans clés du tout (ni primaire, ni étrangère).


    Citation Envoyé par SQLpro Voir le message
    Non, il n'y a pas de clef dans ce cas !
    Il n'existe pas de clef caché.
    Par nature SQL est ensembliste, ce qui veut dire que dans une table sans clef il est impossible de distinguer des doublons.

    Lisez ce que j'ai écrit à ce sujet :
    http://blog.developpez.com/sqlpro?ti..._sont_des_ense

    A +

  7. #7
    Modérateur
    Avatar de Chtulus
    Homme Profil pro
    Ingénieur
    Inscrit en
    Avril 2008
    Messages
    3 094
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Santé

    Informations forums :
    Inscription : Avril 2008
    Messages : 3 094
    Points : 8 678
    Points
    8 678
    Par défaut
    Bonsoir,

    ???

    « Je ne cherche pas à connaître les réponses, je cherche à comprendre les questions. »
    - Confucius -

    Les meilleurs cours, tutoriels et Docs sur les SGBD et le SQL
    Tous les cours Office
    Solutions d'Entreprise



Discussions similaires

  1. Réponses: 4
    Dernier message: 10/05/2006, 18h40
  2. [MySQL] Comment connaître les noms des tables existantes
    Par Cygnus Saint dans le forum Langage SQL
    Réponses: 7
    Dernier message: 16/03/2006, 20h26
  3. [Hibernate] Comment ramener les valeurs des tables de ref ?
    Par PamelaGeek dans le forum Hibernate
    Réponses: 9
    Dernier message: 07/02/2006, 23h52
  4. Réponses: 4
    Dernier message: 05/01/2006, 09h01
  5. Réponses: 2
    Dernier message: 03/02/2005, 13h21

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