2010-12-13 2 views
2

J'ai une procédure stockée dans laquelle j'aurai un paramètre de sortie. La requête fonctionne et lorsque j'exécute la requête dans SQL Server Management Studio, j'obtiens la bonne réponse. Mon problème est d'assigner la réponse à mon paramètre de sortie. Voici la procédure stockée:Syntaxe de renvoi d'un paramètre de sortie

ALTER PROCEDURE [dbo].[RDusp_Report_Impact] 
-- Add the parameters for the stored procedure here 
@SiteID int, 
@RiskCount int output 
AS 
BEGIN 
SET NOCOUNT ON; 



select sum(cnt) as mytotal from 
(
select count(Impact.Rating) as cnt from Impact, Likelihood, Exposure where 
Impact.SiteID=2 
and Exposure.SiteID = 2 and Impact.Rating > 3 and Likelihood.Rating > 3 
and Exposure.ImpactID = Impact.ImpactID and exposure.LikelihoodID = Likelihood.LikelihoodID 
) as c 


END 

J'essaie d'attribuer @RiskCount être la valeur mytotal, mais il est dit que la colonne n'existe pas. Je veux juste retrouver ce résultat. Ne devrait pas être trop difficile, juste une chose de la syntaxe que je ne peux pas obtenir. Merci.

Répondre

1

Modifier votre requête comme ceci (la partie cruciale est la 1ère ligne de l'instruction SELECT - select @RiskCount = sum(cnt):

ALTER PROCEDURE [dbo].[RDusp_Report_Impact] 
-- Add the parameters for the stored procedure here 
@SiteID int, 
@RiskCount int output 
AS 
BEGIN 
    SET NOCOUNT ON; 

    select @RiskCount = sum(cnt) 
    from 
    (select count(Impact.Rating) as cnt 
    from Impact, Likelihood, Exposure 
    where Impact.SiteID=2 
    and Exposure.SiteID = 2 
    and Impact.Rating > 3 
    and Likelihood.Rating > 3 
    and Exposure.ImpactID = Impact.ImpactID 
    and exposure.LikelihoodID = Likelihood.LikelihoodID) as c 
END 

Execute comme ceci:

DECLARE @rc int 
EXEC [dbo].[RDusp_Report_Impact] 123, @rc output -- 123 is an example @SiteID value 
SELECT @rc 
+0

EXEC doit ajouter la valeur @SiteID – devio

+0

@devio Merci d'avoir édité ma réponse –

+0

@Marek si mon instruction select contient plus d'une colonne, soit select RiskCount = somme (cnt), Exposure.SiteI D alors quel shoyld être la syntaxe si ma question n'est pas si claire s'il vous plaît jeter un oeil à cela http://stackoverflow.com/questions/43039801/retrieving-output-parameter-value-from-two-internal-select -statements J'attends la réponse – Meena

Questions connexes