J'ai certaines procédures stockées qui sont utilisées pour générer des rapports. J'essaye de construire un tableau de bord de rapport qui montrera combien d'enregistrements sont sur chaque rapport.T-SQL 2005: Supprimer la sortie du jeu de résultats
Les SP sont détaillés dans un tableau qui détaille l'ordre dans lequel ils doivent être exécutés.
J'ai un tableau de bord SP dans lequel j'utilise Cursor pour parcourir la table de base de données, exécuter chaque rapport SP et ensuite enregistrer le @@ rowcount dans une table temporaire qui constitue la base du tableau de bord.
Je peux désactiver le nombre de lignes en utilisant set rowcoun off en haut de chaque SP, mais je n'arrive pas à trouver un moyen d'arrêter l'ensemble de résultats à partir de la commande EXEC sp_my_sp.
WHILE @@FETCH_STATUS = 0 BEGIN declare @x as int exec @SP_name @x OUT select @x insert into @results (Short___name,Records) values (@shortname,@x) FETCH NEXT FROM myCursor INTO @ShortName, @SP_Name,@Group,@Order END
Quelque part là-bas je besoin de supprimer ou rediriger la sortie. Je ne veux pas le faire dans le rapport SP.
La seule solution que j'ai trouvée jusqu'ici est d'ajouter un paramètre d'entrée à chaque SP pour dire s'il est exécuté pour le tableau de bord ou pour le rapport. Au lieu de retourner le jeu de résultats directement, insérez-le dans une table en mémoire et puis rapportez la table en mémoire SEULEMENT si nous courons pour les rapports - pas sympa comme quelqu'un doit se rappeler de le faire pour chaque nouveau SP
TIA
Obiron