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 :

Connaitre les paramètres utilisés d'une procédure stockée [2008]


Sujet :

MS SQL Server

  1. #1
    Expert éminent
    Avatar de berceker united
    Profil pro
    SQL
    Inscrit en
    Février 2005
    Messages
    3 494
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : SQL
    Secteur : Finance

    Informations forums :
    Inscription : Février 2005
    Messages : 3 494
    Points : 6 062
    Points
    6 062
    Par défaut Connaitre les paramètres utilisés d'une procédure stockée
    Bonjour,

    Je voudrais savoir s'il y a une vue système permettant de connaitre les paramètres d'une procédure stockée sans avoir besoin de faire une analyse de texte sur l'information retourné par sp_helptext.
    Exemple.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    CREATE PROCEDURE dbo.Test (@param_1 INTEGER, @param_2 VARCHAR(250))
    AS BEGIN
    ...
    END
    GO
    Que cela puisse me retourner
    @param_1 | INTEGER
    @param_2 | VARCHAR(250)


    Merci

  2. #2
    Modérateur

    Profil pro
    dba
    Inscrit en
    Janvier 2010
    Messages
    5 643
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : dba

    Informations forums :
    Inscription : Janvier 2010
    Messages : 5 643
    Points : 13 092
    Points
    13 092
    Par défaut
    Bonjour,

    Vous pourrez trouver toutes ces informations dans la vue INFORMATION_SCHEMA.PARAMETERS

  3. #3
    Expert éminent
    Avatar de berceker united
    Profil pro
    SQL
    Inscrit en
    Février 2005
    Messages
    3 494
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : SQL
    Secteur : Finance

    Informations forums :
    Inscription : Février 2005
    Messages : 3 494
    Points : 6 062
    Points
    6 062
    Par défaut
    Bonjour,

    Merci pour cette informations, j'aurais du le voir car j'étais resté sur les vues systèmes de la base de données.
    Merci

  4. #4
    Expert éminent
    Avatar de berceker united
    Profil pro
    SQL
    Inscrit en
    Février 2005
    Messages
    3 494
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : SQL
    Secteur : Finance

    Informations forums :
    Inscription : Février 2005
    Messages : 3 494
    Points : 6 062
    Points
    6 062
    Par défaut Petite question
    Mais je reviens sur ma question.
    Faut-il utiliser INFORMATION_SCHEMA ou sys.xxx ?

    Il me semble qu' INFORMATION_SCHEMA est normalisé.

  5. #5
    Modérateur

    Profil pro
    dba
    Inscrit en
    Janvier 2010
    Messages
    5 643
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : dba

    Informations forums :
    Inscription : Janvier 2010
    Messages : 5 643
    Points : 13 092
    Points
    13 092
    Par défaut
    Citation Envoyé par berceker united Voir le message
    Il me semble qu' INFORMATION_SCHEMA est normalisé.
    C'est le cas.

    Seulement, certaines données ne sont présentes que dans les tables système...

  6. #6
    Expert éminent
    Avatar de berceker united
    Profil pro
    SQL
    Inscrit en
    Février 2005
    Messages
    3 494
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : SQL
    Secteur : Finance

    Informations forums :
    Inscription : Février 2005
    Messages : 3 494
    Points : 6 062
    Points
    6 062
    Par défaut
    Ok je vais donc surement jongler entre les deux. Mais maintenant je me pose la question si c'est pas plus propre ou utile d'utiliser SMO mais ça l'air un peux plus chaud quand même.

  7. #7
    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,
    sp_help te renvoie aussi la réponse , après ça dépends ce que tu veux en faire.

    PS: il n'y a pas le text après sp_help ce n'est pas un hasard.
    Cordialement
    Soazig

  8. #8
    Expert éminent
    Avatar de berceker united
    Profil pro
    SQL
    Inscrit en
    Février 2005
    Messages
    3 494
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : SQL
    Secteur : Finance

    Informations forums :
    Inscription : Février 2005
    Messages : 3 494
    Points : 6 062
    Points
    6 062
    Par défaut
    Si ça existe http://msdn.microsoft.com/fr-fr/library/ms176112.aspx

    Je veux pas utiliser sp_help car ça me renverrait plusieurs dataset et je préfère utiliser une solution plus simple, plus propre.

    En faite, je veux connaitre les caractéristiques des tables (bon ça c'est facile) mais je veux les caractéristique pour les procédures stockée.
    Mon but, faire un générateur de données pour peupler une base de données pour teste.

    Et souvent les procédures stockées sont oubliées.

  9. #9
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 849
    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 849
    Points : 52 982
    Points
    52 982
    Billets dans le blog
    6
    Par défaut
    Les vues d'information de schéma (INFORMATION_SCHEMA) sont garanties et portable car normalisées.
    Les vues systèmes peuvent changer au gré des humeurs du staff Microsoft lors des services packs comme lors des versions...

    Conclusion : les premières sont destinées à résoudre des problématique stables (application en général), les autres sont à destinations de la cuisine interne (dba par exemple).

    A +

  10. #10
    Expert éminent
    Avatar de berceker united
    Profil pro
    SQL
    Inscrit en
    Février 2005
    Messages
    3 494
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : SQL
    Secteur : Finance

    Informations forums :
    Inscription : Février 2005
    Messages : 3 494
    Points : 6 062
    Points
    6 062
    Par défaut
    Je pense que je vais privilégier l’interrogation de cette base ou SMO.

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

    La requête suivante est valable de SQL Server 2005 à SQL Server 2014 :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    SELECT		O.type_desc AS module_type
    		, O.name AS module_name
    		, P.name AS parameter_name
    		, TY.name AS parameter_data_type_name
    		, CASE WHEN TY.name IN ('nchar', 'nvarchar') THEN P.max_length / 2 ELSE P.max_length END AS max_length
    		, P.precision
    		, P.scale
    FROM		sys.parameters AS P
    INNER JOIN	sys.objects AS O
    			ON P.object_id = O.object_id
    INNER JOIN	sys.types AS TY
    			ON TY.system_type_id = P.system_type_id
    En bossant un peu, on peut construire la chaîne qui donne le type de données tel qu'on le taperait pour décrire une table en T-SQL.

    @++

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

Discussions similaires

  1. Réponses: 6
    Dernier message: 15/09/2010, 18h02
  2. Réponses: 2
    Dernier message: 26/01/2010, 10h05
  3. Réponses: 4
    Dernier message: 17/12/2007, 08h29
  4. Réponses: 1
    Dernier message: 27/08/2007, 17h40
  5. connaitre les paramètres demandés par une méthode
    Par von_magnus dans le forum Tkinter
    Réponses: 4
    Dernier message: 25/07/2006, 14h22

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