Возврат выходного параметра из хранимой процедуры, включающей несколько производных таблиц - PullRequest
0 голосов
/ 31 июля 2011

Как я могу вернуть количество самого внутреннего оператора SELECT, отмеченного звездочкой в ​​следующей хранимой процедуре, в качестве выходного параметра?

Create procedure MySp 
AS
Select  RowNumber,NewsId From 
(
    Select Row_Number() Over (ORDER BY FirstVisit) as 'RowNumber',NewsId From 
        (
            * Select Distinct NewsId,FirstVisit,PublishDate From VwNewsPack 
        ) as t
) as tt         
Where NewsId between 10 and 20

1 Ответ

2 голосов
/ 31 июля 2011

Вы не можете сделать это за один раз.То есть как назначить переменную, так и выбрать набор результатов.Это один из других.

Вы можете вернуть дополнительный столбец:

Select  RowNumber,NewsId,InnerCount From 
(
    Select Row_Number() Over (ORDER BY FirstVisit) as 'RowNumber', NewsId
      , COUNT(*) OVER () AS InnerCount
    From 
       (
        Select Distinct NewsId,FirstVisit,PublishDate From VwNewsPack 
    ) as t
) as tt         
Where NewsId between 10 and 20

Если этого недостаточно, то вам понадобится временная таблица для внутреннего выбора, иприсвойте @@ ROWCOUNT в качестве переменной

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...