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 :

[Procédure Stockée] Paramètres NULL et valeurs par défaut


Sujet :

MS SQL Server

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    201
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 201
    Points : 196
    Points
    196
    Par défaut [Procédure Stockée] Paramètres NULL et valeurs par défaut
    Salut,

    J'ai un petit soucis dans un application. Je souhaiterai en effet récupérer tous les paramètres de ma/mes procédure(s) stockée(s).
    Pour cela je fait;
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sp_stored_procedures @sp_name =  'sp_name'
    Ce qui marche très bien, MAIS ne me renvoie pas les valeurs par défaut de celle ci n'y même le fait qu'elles soit NULLABLE.
    En fait d'après cette commande, tous mes paramètres sont Nullable (et don possède la valeur par défaut: NULL).

    Au cas ou je m'y sois mal prit pour créer mes ProcSto, voila leur allure:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    CREATE PROCEDURE [dbo].[G_Ref_ListeType_Insert]
    	 @id_ListeType Int = null OUT
    	, @Description NVarChar(100)
    	, @Level Int = 0
    AS
    BEGIN
         [...]
    END
    Si quelqu'un

  2. #2
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 837
    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 837
    Points : 52 922
    Points
    52 922
    Billets dans le blog
    5
    Par défaut
    Vous ne pouvez accéder à cette info qu'au titre de DAC et par la requête :
    SELECT * FROM sys.syscolpars.

    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/ * * * * *

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

    Dès SQL Server 2005, la vue système sys.parameters répond en partie à votre question par ses colonnes is_output et has_default_value

    @++

  4. #4
    Membre actif
    Inscrit en
    Février 2009
    Messages
    224
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 224
    Points : 269
    Points
    269
    Par défaut
    Oui tout à fait et l'on donc extraire les paramètres et leurs valeurs avec ce script:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    select p.name, p.default_value
     from sys.all_parameters p
     inner join sys.all_objects o ON o.object_id=p.object_id
     where o.type='P' and o.schema_id=1; -- schéma dbo

  5. #5
    Membre habitué
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    201
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 201
    Points : 196
    Points
    196
    Par défaut
    Merci à tous pour vos réponses!
    Cependant je me retrouve toujours le même problème... à savoir que tous mes paramètres sont considéré comme ayant une valeur par défaut = NULL.

    Par contre je n'ai pas de vue nommé sys.syscolpars (et j'avoue ne pas comprendre ce qu'est un DAC )

    Est-ce qu'il n'y à pas un soucis avec ma création de procédure stockée? J'avoue être un peu désemparer

    PS: je tourne sur un Sql Server 2005

  6. #6
    Membre habitué
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    201
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 201
    Points : 196
    Points
    196
    Par défaut
    Finalement ma solution vers une gestion full code...
    CAD, chargé le code source d'un Procédure Stockée et parser ces paramètres pour retrouver ce qui m'interresse.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT ROUTINE_DEFINITION
    	FROM INFORMATION_SCHEMA.Routines
    WHERE ROUTINE_NAME = 'sp_name'
    Permet de récupérer ce code source.

    Merci de votre aide

  7. #7
    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
    j'avoue ne pas comprendre ce qu'est un DAC
    DAC est l'acronyme de Dedicated Adminstrator Connection.
    C'est une fonctionnalité qui permet à un administrateur de se connecter à une instance de SQL Server lorsque celui-ci n'accepte pas de connexions, et de diagnostiquer celle-ci pour résoudre le problème.

    Pour en savoir plus, c'est par ici

    chargé le code source d'un Procédure Stockée et parser ces paramètres pour retrouver ce qui m'interresse.
    Rofl, ça fait mal ça

    Sachez que cette vue SQL ne retourne que les 4000 premiers caractères de votre module SQL.
    Si vous voulez le code complet : sys.sql_modules.

    @++

  8. #8
    Membre habitué
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    201
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 201
    Points : 196
    Points
    196
    Par défaut
    Citation Envoyé par elsuket Voir le message
    Si vous voulez le code complet : sys.sql_modules.
    Merci beaucoup de la précision!

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

Discussions similaires

  1. Réponses: 0
    Dernier message: 10/07/2012, 09h21
  2. Réponses: 0
    Dernier message: 07/10/2010, 20h11
  3. Réponses: 10
    Dernier message: 27/02/2009, 17h57
  4. [c#][procédure stockée] paramètre à null
    Par pinocchio dans le forum Accès aux données
    Réponses: 2
    Dernier message: 02/10/2006, 16h09
  5. [C#] Procédures stockées - Paramètres "null"
    Par aymron dans le forum ASP.NET
    Réponses: 1
    Dernier message: 16/12/2005, 17h06

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