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 :

requete pour avoir CONTENU procedures stockees


Sujet :

MS SQL Server

  1. #1
    Membre régulier Avatar de bmayer
    Inscrit en
    Décembre 2003
    Messages
    153
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 153
    Points : 79
    Points
    79
    Par défaut requete pour avoir CONTENU procedures stockees
    Bonjour,

    Comme on requete la table sysobjects pour avoir, par exemple les name des procedures stockees, comment faire pour en avoir le contenu (le sql) ?

    Ceci afin de voir les diff entre les procedures de la base de prod, et le base de dev.

    Merci d'avance.

  2. #2
    Membre averti
    Inscrit en
    Août 2002
    Messages
    354
    Détails du profil
    Informations forums :
    Inscription : Août 2002
    Messages : 354
    Points : 398
    Points
    398
    Par défaut
    Slt,

    le code des objets est stocke dans la table syscomments.

    a+

  3. #3
    Membre régulier Avatar de bmayer
    Inscrit en
    Décembre 2003
    Messages
    153
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 153
    Points : 79
    Points
    79
    Par défaut
    Citation Envoyé par Gandalf Le Blanc
    Slt,

    le code des objets est stocke dans la table syscomments.

    a+
    YES !

    Merci, puis-je abuser, en demandant s'il existe une structure qui indiquerait la structure des tables ? Car, tant que j'y suis a surveiller si les sp sont modifiees, autant regarder le reste aussi.

  4. #4
    Membre averti
    Inscrit en
    Août 2002
    Messages
    354
    Détails du profil
    Informations forums :
    Inscription : Août 2002
    Messages : 354
    Points : 398
    Points
    398
    Par défaut
    Les tables sont sysobjects et syscolumns.

    a+

  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 865
    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 865
    Points : 53 021
    Points
    53 021
    Billets dans le blog
    6
    Par défaut
    OU LA LA !!!!

    Pas beau du tout.

    Éviter d'utiliser directement les tables systèmes.

    Il existe des vues d'information de schéma, dans lesquelles on trouve tout ce que l'on veut.

    Par exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    SELECT *
    FROM INFORMATION_SCHEMA.ROUTINES
    Liste des procédures

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    SELECT *
    FROM INFORMATION_SCHEMA.COLUMNS
    Liste les colonnes de toutes les tables

    etc.

    A lire :
    http://sqlpro.developpez.com/SQL_AZ_7b.html#SCHEMA9

    A +

  6. #6
    Membre averti
    Inscrit en
    Août 2002
    Messages
    354
    Détails du profil
    Informations forums :
    Inscription : Août 2002
    Messages : 354
    Points : 398
    Points
    398
    Par défaut
    OU LA LA !!!!

    Pas beau du tout.

    Éviter d'utiliser directement les tables systèmes.

    Il existe des vues d'information de schéma, dans lesquelles on trouve tout ce que l'on veut.
    Exact mais quand on a l'habitude d'utiliser les tables systemes pour avoir ce que l'on veut exactement on ne penses plus aux vues existantes ... mais c'est vrai qu'il est plus elegant d'utilises ces vues.

    a+

  7. #7
    Membre régulier Avatar de bmayer
    Inscrit en
    Décembre 2003
    Messages
    153
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 153
    Points : 79
    Points
    79
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Serveur: Msg 208, Niveau 16, État 1, Ligne 1
    'INFORMATION_SCHEMA.ROUTINES' : Nom d'objet incorrect.
    Est-ce du au fait que je sois en sql server 7 ?

    Sinon, je me contente de :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    PRINT 'procédures de la base ' + @@SERVERNAME + ' ===> ' + DB_NAME();
    PRINT '';
    SELECT syscomments.text AS 'Détails des procédures'
    FROM syscomments INNER JOIN sysobjects
    ON sysobjects.id = syscomments.id
    WHERE sysobjects.name LIKE 'sp%'
    ORDER BY sysobjects.name;
    pour les procedures.
    (le sp%, c'est que toutes mes procedures sont prefixees par sp)

    a+
    [/code]

  8. #8
    Rédacteur
    Avatar de WOLO Laurent
    Homme Profil pro
    Architecte de base de données
    Inscrit en
    Mars 2003
    Messages
    2 741
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : Congo-Brazzaville

    Informations professionnelles :
    Activité : Architecte de base de données
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2003
    Messages : 2 741
    Points : 4 414
    Points
    4 414
    Par défaut
    Plus facile d'utiliser les vues d'information de schema mais connaître les tables sytèmes permet de mieux maîtriser le SGBD dans le quel en bosse.
    Enfin , c'est juste une suggestion.
    Une petite question et si le code à été créer avec l'option with encription ?

  9. #9
    Membre averti
    Inscrit en
    Août 2002
    Messages
    354
    Détails du profil
    Informations forums :
    Inscription : Août 2002
    Messages : 354
    Points : 398
    Points
    398
    Par défaut
    Est-ce du au fait que je sois en sql server 7 ?
    Oui la vue n'est disponible qu'en SQL 2000.

  10. #10
    Membre régulier Avatar de bmayer
    Inscrit en
    Décembre 2003
    Messages
    153
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 153
    Points : 79
    Points
    79
    Par défaut
    Bon, Je pense que l'on peut clore le sujet ?

    Merci a tous !

  11. #11
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 865
    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 865
    Points : 53 021
    Points
    53 021
    Billets dans le blog
    6
    Par défaut
    Pas tout à fait...

    Les vues d'info de schema sont des éléments normatif donc garantie pour la portabilité dans les versions futures.

    Les tables systèmes sont sujet à des modifications et MS ne peut en aucun cas garantir la portabilité du code invoqué sur les tables sys...
    d'ailleurs des modif majeures sont intervenues sur les tables systèmes entre v7 et v2000 du fait de l'ajout des triggers INSTEAD et des UDF...

    Voit l'aide en ligne pour les différentes vues, elles sont toutes décrites.

    Pour l'encryption tu ne pourra pas obtenir les données sauf à être celui qui a les droits dessus.

    A +

  12. #12
    Membre régulier Avatar de bmayer
    Inscrit en
    Décembre 2003
    Messages
    153
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 153
    Points : 79
    Points
    79
    Par défaut
    Certes,
    Et j'utilise autant que faire ce peut une norme, plutot qu'une deviance.
    Mais bon, je dois utiliser ce qui est mis a ma disposition, c.a.d. SQL Server v7 ...
    Qui plus est, il s'avere que le select dans les tables systeme coupe une procedure ... Donc, pour faire une comparaison entre la base de test et la base de prod, exportation des scripts sur chaque base, et comparaison par diff, en externe.
    Il y a peut etre + orthodoxe ...

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

Discussions similaires

  1. [AC-2003] Requete pour avoir un nombre en pourcentage
    Par Scopas dans le forum Requêtes et SQL.
    Réponses: 0
    Dernier message: 21/04/2009, 10h44
  2. creation d une requete dynamique dans une procedure stockee
    Par oxilab dans le forum SQL Procédural
    Réponses: 2
    Dernier message: 20/02/2008, 15h57
  3. Requete pour avoir une liste d enregistrements uniques
    Par toto92 dans le forum Requêtes et SQL.
    Réponses: 2
    Dernier message: 17/11/2007, 08h46
  4. Comment modifie une requete pour avoir des sommes?
    Par F@ce27 dans le forum Langage SQL
    Réponses: 8
    Dernier message: 16/06/2006, 13h47
  5. Syntaxe pour avoir un seul resultat dans une requete
    Par Pompil dans le forum Requêtes
    Réponses: 2
    Dernier message: 06/09/2003, 15h51

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