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 :

Affichage d'une Proc stokée


Sujet :

MS SQL Server

  1. #1
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Avril 2013
    Messages
    47
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2013
    Messages : 47
    Points : 18
    Points
    18
    Par défaut Affichage d'une Proc stokée
    Bonjour à tous,

    Petite question, je récupère dans une variable le nom d'une procédure stockée. Ma question est :

    Je souhaite afficher le contenu de cette procédure ( juste le code de la procédure ) dans un popup ( pour le popup c'est bon ), quelle est la requête SQL à faire pour avoir ce contenu ? J'ai essayé :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Select text from dbo.SXPS_FLUX_Client
      Where type = 'PROCEDURE';
    Mais ne fonctionne pas

    Merci d'avance

  2. #2
    Membre éprouvé
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Août 2009
    Messages
    623
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Août 2009
    Messages : 623
    Points : 1 049
    Points
    1 049
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sp_helptext 'NOM_PROCEDURE'

  3. #3
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Avril 2013
    Messages
    47
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2013
    Messages : 47
    Points : 18
    Points
    18
    Par défaut
    Merci d'abord pour ta réponse. Mais j'ai déjà tenté le sp_help mais ceci me donne la structure de la sp. Je souhaite le contenue de celle-ci.

    J'ai essayé aussi :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT text 
    FROM syscomments 
    WHERE id = (SELECT ID FROM sysobjects 
    WHERE name = <Ma proc>)
    Mais il me faut les connexions et tout à la base avant :s

  4. #4
    Membre éprouvé
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Août 2009
    Messages
    623
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Août 2009
    Messages : 623
    Points : 1 049
    Points
    1 049
    Par défaut
    Si je comprends bien, tu souhaites récupérer le corps de la SP uniquement, c'est à dire en supprimant le CREATE PROCEDURE XXX ?
    Par exemple ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    CREATE PROCEDURE [dbo].[Calcul_Quotidien] 
    	 @DateDeb date = NULL
    	 , @DateFin date = NULL 
    AS
    BEGIN
     
    	SET NOCOUNT ON;
    	SELECT 1 FROM TEST
    END
    deviendrait
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    	SET NOCOUNT ON;
    	SELECT 1 FROM TEST
    ?

  5. #5
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Avril 2013
    Messages
    47
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2013
    Messages : 47
    Points : 18
    Points
    18
    Par défaut
    Enfaite j'ai réussi avec ce code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT text FROM syscomments WHERE id = (SELECT ID FROM sysobjects WHERE name = " CalculerPrix ")
    ça m'affiche son contenu, c'est que je voulais mais du coup j'ai une fonction :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
        void ProcedureGridViewProcedure(Object sender, EventArgs e)
        {
     
                string NomProcedure = DataGridView.SelectedValue.ToString();       
                string DataProcedure = "SELECT text FROM syscomments WHERE id = (SELECT ID FROM sysobjects WHERE name = " + NomProcedure + ")";
     
                if (NomProcedure != String.Empty )
                {
                    ClientScript.RegisterStartupScript(this.GetType(), "key", "launchModal(\"" + DataProcedure + "\");", true);
     
                } 
     
        }
    Mais ça m'affiche tel quel la string qui est dans DataProcedure au lieu d'afficher le contenu de ma proc.

  6. #6
    Invité
    Invité(e)
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    select sch.name, obj.name, mod.definition
    from sys.all_sql_modules mod with (nolock)
    join sys.objects obj with (nolock)
    	on obj.object_id = mod.object_id
    join sys.schemas sch with (nolock)
    	on sch.schema_id = obj.schema_id
    where sch.name = 'dbo'
    	and obj.name = 'nom_de_la_stored_proc'
    order by 1,2

  7. #7
    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
    Plus simple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT ROUTINE_DEFINITION 
    FROM INFORMATION_SCHEMA.ROUTINES 
    WHERE ROUTINE_NAME = '???'
    A +

  8. #8
    Membre éprouvé
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    956
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 956
    Points : 1 199
    Points
    1 199
    Par défaut
    Bonjour,
    Une petite remarque Dredhwen sp_helptext donne bien le contenu (texte) de ta procédure stockée, en revanche sp_help ne donne que des informations sur les paramètres. Il ne faut pas les confondre.

    Maintenant, ton problème d’exécution dans la fonction
    void ProcedureGridViewProcedure(Object sender, EventArgs e)
    est un problème qui ne concerne pas ton SGBD mais plutôt ton langage de programmation ( C#? peut-être) et pour cela tu n'es pas au bon endroit, il y a surement un forum dédié.

    Cordialement
    Soazig

Discussions similaires

  1. Masquer l'affichage d'une modalité dans une proc tabulate
    Par pix33 dans le forum ODS et reporting
    Réponses: 8
    Dernier message: 01/03/2018, 14h51
  2. Affichage du "Total" avec une proc sql
    Par nbl.83 dans le forum ODS et reporting
    Réponses: 2
    Dernier message: 06/06/2012, 11h44
  3. Eviter l'affichage des résultats d'une proc sql
    Par fafabzh6 dans le forum SAS Base
    Réponses: 0
    Dernier message: 30/07/2008, 14h42
  4. Style d'affichage d'une proc tabulate
    Par Maxime555 dans le forum ODS et reporting
    Réponses: 1
    Dernier message: 23/04/2008, 16h55
  5. probléme d'affichage d'une fiche
    Par sb dans le forum Composants VCL
    Réponses: 7
    Dernier message: 29/08/2002, 09h43

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