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

Développement SQL Server Discussion :

MS-SQL 2005, Debug.print dans une procédure ?


Sujet :

Développement SQL Server

  1. #1
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 331
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 331
    Points : 23 786
    Points
    23 786
    Par défaut MS-SQL 2005, Debug.print dans une procédure ?
    Bonjour à tous et merci de votre temps et de votre aide.

    Je suis GRAND débutant en MS-SQL donc une réponse détaillée pas à pas serait grandement appréciée.

    Je travaille en MS-SQL 2005 avec comme outil le SQL Server Managment Studio.

    J'ai une procédure stockée que je voudrais débuguer mais j'ai beaucoup de problèmes avec les outils de debuguage que j'ai trouvé et je suis un peu pris par le temps.

    Peut-on en MS-SQL faire l'équivalent d'un Debug.Print ? C-à-d envoyer un texte vers la console ou la fenêtre de résultat pour afficher le contenu des variables utilisées dans la procédure.

    J'ai fait des recherches sur ce forum et internet mais sans résultat, probablement que je n'ai pas posé la question comme il faut.

    A+
    Vous voulez une réponse rapide et efficace à vos questions téchniques ?
    Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
    Et aussi regardez dans la FAQ Access et les Tutoriaux Access. C'est plein de bonnes choses.

  2. #2
    Expert éminent sénior
    Avatar de mikedavem
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Août 2005
    Messages
    5 450
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Ain (Rhône Alpes)

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

    Informations forums :
    Inscription : Août 2005
    Messages : 5 450
    Points : 12 891
    Points
    12 891
    Par défaut
    Pour débugger une procédure stockée avec SQL Server 2005, vous avez plusieurs choix :

    - Utiliser en compléement Visual Studio 2005 qui permet de suivre pas à pas l'exécution de votre procédure et de voir le contenu de vos variables et la fenêtre

    - Via la console de management SQL Server (SSMS) en ouvrant une fenêtre de requête et insérer dans votre procédure la commande PRINT pour le débuggage.

    Exemple :

    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
    CREATE PROCEDURE dbo.test
    AS
     
    ALTER PROCEDURE test
    AS
     
    DECLARE @var VARCHAR(10);
     
    SET @var = 'step1';
    PRINT @var;
     
    SET @var = 'step2';
    PRINT @var;
    GO
     
    EXEC dbo.test;
    GO
    ++

  3. #3
    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
    bonjour,
    SQL Server 2005 Management Studio n'intègre pas un débugeur Transact SQL, ce que fait 2008 :-) . Par contre lors de létape de mise au point, vous pouvez utiliser l'instruction PRINT, il faudra bien sur supprimer ces instructions par la suite.
    Par exemple:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    create procedure ptest as
    begin
    declare @n int;
    select @n=count(*) from maTable
    print 'resultat'+convert(char(10),@n)
    end;
    et le test de la procédure:

  4. #4
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 331
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 331
    Points : 23 786
    Points
    23 786
    Par défaut
    Merci à vous.
    Vous voulez une réponse rapide et efficace à vos questions téchniques ?
    Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
    Et aussi regardez dans la FAQ Access et les Tutoriaux Access. C'est plein de bonnes choses.

  5. #5
    FMJ
    FMJ est déconnecté
    Membre averti
    Profil pro
    tutu
    Inscrit en
    Octobre 2003
    Messages
    416
    Détails du profil
    Informations personnelles :
    Localisation : France, Aveyron (Midi Pyrénées)

    Informations professionnelles :
    Activité : tutu

    Informations forums :
    Inscription : Octobre 2003
    Messages : 416
    Points : 356
    Points
    356
    Par défaut
    Et si le code de ta procédure doit évoluer et que tu es susceptible de refaire des debugs sur celui-ci, tu seras motivé pour ne pas réécrire à chaque fois tes PRINT.

    Solution de facilité :
    Tu crées une variable @debug à laquelle tu affectes la valeur 0 ou 1 en début de procédure. Et pour chaque PRINT du corps de la procédure, tu utilises la clause :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    IF @debug=1 THEN BEGIN PRINT 'Min commentaire' END
    Et il te suffit juste de désactiver le debugging (SET @debug=0) lorsque tu n'en as plus besoin.

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 20/03/2009, 09h43
  2. [SQL Server 2005] print dans une procédure stockée
    Par anayathefirst dans le forum MS SQL Server
    Réponses: 10
    Dernier message: 21/03/2008, 15h50
  3. [PL/SQL] Problème de IF dans une procédure
    Par Rydley dans le forum SQL
    Réponses: 12
    Dernier message: 12/12/2007, 09h32
  4. PL/SQL :Retourner un curseur dans une procédure
    Par madina dans le forum PL/SQL
    Réponses: 1
    Dernier message: 24/05/2006, 17h36
  5. [SQL-Server] Sous requete dans une procédure stockée
    Par Worldofdada dans le forum MS SQL Server
    Réponses: 6
    Dernier message: 09/02/2006, 11h18

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