Синтаксис для возврата выходного параметра - PullRequest
2 голосов
/ 13 декабря 2010

У меня есть хранимая процедура, в которой у меня будет выходной параметр.Запрос работает, и когда я запускаю запрос в SQL Server Management Studio, я получаю правильный ответ.Моя проблема заключается в назначении ответа на мой выходной параметр.Вот хранимая процедура:

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

Я пытаюсь присвоить @RiskCount значение в mytotal, но он говорит, что столбец не существует.Я просто хочу получить этот результат обратно.Не должно быть слишком сложно, просто синтаксическая вещь, которую я не могу получить.Спасибо.

1 Ответ

1 голос
/ 13 декабря 2010

Измените ваш запрос следующим образом (важная часть - первая строка оператора 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

Выполните это так:

DECLARE @rc int
EXEC [dbo].[RDusp_Report_Impact] 123, @rc output  -- 123 is an example @SiteID value
SELECT @rc
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...