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

Sybase Discussion :

[T-SQL]sp_help + champs indexé


Sujet :

Sybase

  1. #1
    Membre �clair�
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    293
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 293
    Par d�faut [T-SQL]sp_help + champs indexé
    Bonjour a tous,
    Je me demandais dans quel table system est �crit les champs index� par nom d'index.
    J'ai cherch� dans sysobjects et sysindexes mais j'ai pas trouv�.
    Quand on fait un sp_help <nom_de_table> le champ visiblement se nomme index_keys ...
    Merci de votre aide �clair�...

  2. #2
    Membre �clair�
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    293
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 293
    Par d�faut
    J'ai un d�but de r�ponse ... Il me semble que le champ KEYS1 sous sysindexes, contient le nom de champs index� mais en binaire...(euh pardon hexa
    Quelqu'un peut'il me confirmer ou m'infirmer cela ??
    De plus si c'est cela comment utiliser le convert convenablement pour me soretir mes noms de champs convenablement.
    Merci

  3. #3
    Membre Expert

    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 307
    D�tails du profil
    Informations personnelles :
    �ge : 66
    Localisation : Suisse

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 307
    Par d�faut
    Le codage de l'information dans sysindexes est relativement compliqu�.

    Si on regarde la source de sp_helpindex on voit:

    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
    40
    41
    42
    43
    44
    45
     
    while @indid is not NULL
    begin
     
            /*
            **  First we'll figure out what the keys are.
            */
            declare @i int
            declare @thiskey varchar(30)
            declare @sorder char(4)
            declare @lastindid int
     
            select @keys = "", @i = 1
     
            set nocount on
     
            while @i <= 31
            begin
                    select @thiskey = index_col(@objname, @indid, @i)
     
                    if (@thiskey is NULL)
                    begin
                            goto keysdone
                    end
     
                    if @i > 1
                    begin
                            select @keys = @keys + ", "
                    end
     
                    select @keys = @keys + @thiskey
     
                    /*
                    ** Get the sort order of the column using index_colorder()
                    ** This support is added for handling descending keys.
                    */
                    select @sorder = index_colorder(@objname, @indid, @i)
                    if (@sorder = "DESC")
                            select @keys = @keys + " " + @sorder
     
                    /*
                    **  Increment @i so it will check for the next key.
                    */
                    select @i = @i + 1
    ...
    Donc il on peut utiliser la fonction index_col() pour cette information.

    Et, comme d'habitude, prendre l'habitude de regarder la source des proc stock�es pour comprendre comment les choses marchent:

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
     
    use sybsystemprocs
    go
    sp_helptext sp_helpindex
    go
    Michael

  4. #4
    Membre �clair�
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    293
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 293
    Par d�faut
    oui merci pour le conseil en sp_helptext mais je ne suis que dbo sur la base en les SA ont limiter l'utilisation de certaines proc�dures, stock�s... Je n'ai donc pas put faire cette v�rif directement.
    Merci pour le sp_helptext, cela va m'�tre util
    thx

  5. #5
    Membre �clair�
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    293
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 293
    Par d�faut
    Euh erreur de ma part je peux faire sp_helptext, mais que lorsque je suis sous sybsystemprocs....
    je pensais pouvoir faire appel � cette procstocks de n'importe ou ???
    c'est curieux, est-ce un comportement normal ??

  6. #6
    Membre Expert

    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    1 307
    D�tails du profil
    Informations personnelles :
    �ge : 66
    Localisation : Suisse

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 307
    Par d�faut
    C'est normal - sp_helptext permet de voir le code d'une proc stock�e pour autant qu'elle soit d�finie dans la base courante. sp_helptext est en fait une requ�te sur la table syscomments qui contient le texte des procs stock�es, triggers, etc. Comme les procs sp_XXX sont d�finies dans sybsystemprocs sp_helptext ne peut les voirs que si on est dans cette base.

    Michael

+ R�pondre � la discussion
Cette discussion est r�solue.

Discussions similaires

  1. Modifier champ index�s en SQL
    Par jlvalentin dans le forum Requ�tes et SQL.
    R�ponses: 1
    Dernier message: 27/10/2005, 12h26
  2. [SQL] select champ 5-�me caract�re = "D"
    Par mlequim dans le forum Langage SQL
    R�ponses: 5
    Dernier message: 05/09/2005, 17h15
  3. [SQL] pr�ciser un index
    Par shurized dans le forum Oracle
    R�ponses: 2
    Dernier message: 11/05/2005, 12h37
  4. Pb sur une requ�te SQL (de champ vide)
    Par Marion dans le forum Langage SQL
    R�ponses: 3
    Dernier message: 01/07/2004, 11h12
  5. [sql] [jointure] champs = substring(champs,1,5)
    Par DaxTaz dans le forum Langage SQL
    R�ponses: 2
    Dernier message: 26/05/2004, 12h45

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