HELO,
Ma question est que j'ai une procédure stockée dans SQL Server qui renvoie les comptes d'un champ. Je souhaite stocker les résultats de cette procédure stockée dans une variable (scalaire?) D'une procédure stockée différente. P>
----------- NoColName ----------- 14 ----------- MyCol ----------- abc cde efg
4 Réponses :
Eh bien, le moyen le plus simple de résoudre ce problème est de recoder le produit stocké afin que l'instruction SELECT qui renvoie l'ensemble de résultats «Autre» que vous ne voulez pas dans ce cas est conditionnellement extectué, uniquement lorsque vous ne demandez pas le Compte
Ajoutez un autre paramètre appelé @getCount P> alors
Au lieu de juste p> écrire p>
Vous pouvez capturer les résultats de la procédure stockée dans une table TEMP, il n'est donc pas retourné par la procédure stockée appelante.
create table #temp (id int, val varchar(100)) insert into #temp exec sp_My_Other_SP @value, @value, @value, @count OUTPUT
J'ai utilisé cette approche, mais plutôt qu'une table de hachage, j'ai utilisé le type de scalaire de table comme: Déclarez @Temp_tbl Table (valeur int) Insérer dans @temp_tbl Exec SP_MY_SP SET @COUT = (Sélectionnez la valeur TOP 1 de @temp_tbl)
Cela est bien sûr moins efficace depuis que vous sélectionnez des données que vous ne vous souciez pas. Vous feriez mieux d'ajouter un nouveau paramètre à SP_MY_OTHER_SP qui contrôle si l'ensemble de résultats est renvoyé ou non si vous recherchez simplement un compte.
Cela n'a pas de sens, je me soucie du compte comme je l'utiliserai toujours et il est essentiel au reste de la SP.
Avez-vous essayé de changer à p> ? p> p> p>
THE FIRST PROCEDURE: CREATE PROC DD43 @ID INT OUTPUT AS (SELECT @ID=COUNT(*) FROM CS2) SECOND PROCEDURE: CREATE PROC DD45 AS DECLARE @COUNT INT DECLARE @COUN INT EXEC DD43 @COUN OUT --CALLING THE FIRST PROCEDURE SET @COUNT= (SELECT @COUN) SELECT @COUNT EXEC DD45
Bien que ce code puisse répondre à la question, il serait préférable d'expliquer comment cela résout le problème et pourquoi l'utiliser. Les réponses du code seulement ne sont pas utiles à long terme.
Vous devrez nous montrer plus de code puisque votre question n'est pas claire.
Je suis d'accord .. Montrez-nous tout le contexte .. L'appel à l'autre Proc stocké.
Le problème est que le SproC renvoyant le comte comprend plus que celui de ses résultatsset, et cette sortie est devenue dans la 2e SproC.