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 :

Req pour lister les index d'une table ?


Sujet :

MS SQL Server

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Octobre 2003
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Octobre 2003
    Messages : 10
    Par défaut Req pour lister les index d'une table ?
    Comment lister les index d'une table par requete ?

    Merci

  2. #2
    Membre chevronné
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    434
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 434
    Par défaut
    tu cherches dans les tables sysindexes et sysindexkeys de ta base, en faisant une jointure avec sysobjects et syscolumns.

    exemple basique :
    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
     
    SELECT 
    I.NAME NOM_INDEX,
    T.NAME NOM_TABLE,
    C.NAME NOM_COLONNE
    FROM SYSOBJECTS T
    INNER JOIN SYSINDEXES I on T.ID = I.ID
    INNER JOIN SYSINDEXKEYS K 
    ON I.ID = K.ID
    AND I.INDID = K.INDID
    INNER JOIN SYSCOLUMNS C
    ON K.ID = C.ID
    AND K.COLID = C.COLID
    WHERE I.STATUS<>0
    AND T.TYPE = 'U'
    AND T.NAME = 'LA TABLE'

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    43
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mai 2006
    Messages : 43
    Par défaut
    La requête précédente (avec MSS 2005) affiche seulement les index uniques (Primary KEY et Unique Index)
    Il faut changer la condition finale pour avoir tous les index :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    SELECT 
    I.NAME NOM_INDEX,
    T.NAME NOM_TABLE,
    C.NAME NOM_COLONNE
    FROM SYSOBJECTS T
    INNER JOIN SYSINDEXES I ON T.ID = I.ID
    INNER JOIN SYSINDEXKEYS K 
    ON I.ID = K.ID
    AND I.INDID = K.INDID
    INNER JOIN SYSCOLUMNS C
    ON K.ID = C.ID
    AND K.COLID = C.COLID
    WHERE T.NAME = 'NOM_DE_TABLE'

  4. #4
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 995
    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 995
    Billets dans le blog
    6
    Par défaut
    Surtout il convient de ne plus utiliser ces tables, mais de passer par les vues adéquates que sont :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    SELECT * FROM sys.indexes
    SELECT * FROM sys.index_columns
    En effet les tables système peuvent donner des résultats faux et ne seront bientôt plus accessibles.

    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. Problème pour lire les donnée d'une table externe
    Par mardoch dans le forum SQL*Loader
    Réponses: 6
    Dernier message: 17/07/2008, 16h41
  2. Lister les index d'une table
    Par benthebest dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 02/06/2008, 13h03
  3. lister les index d'une table mysql
    Par HM56100 dans le forum VB 6 et antérieur
    Réponses: 1
    Dernier message: 12/01/2008, 18h40
  4. Req pour lister les vues d'une base ?
    Par nanou9999 dans le forum MS SQL Server
    Réponses: 6
    Dernier message: 05/07/2006, 08h12
  5. [MySQL] lister les occurrences d'une table
    Par youyoule dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 07/09/2005, 20h37

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