2015-09-29 3 views
0

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

Как мне изменить свой SP?

CREATE PROCEDURE TestTVP 
(
@param1 int, 
@param2 int, 
@a int OUTPUT 
) 
as 
    SET NOCOUNT ON 
    DECLARE @T1 as TABLE 
(
    PK INT IDENTITY NOT NULL, 
    Wert INTEGER, 
    Name INTEGER 
) 
INSERT INTO @T1(Wert,Name) VALUES (@param1,@param2) 
return select count(*) from @T1 

GO 


exec TestTVP '1','22' 
+2

Yo и не получим результат «RETURN». Вы уверены, что хотите ВОЗВРАТИТЬ его, а не просто SELECT? – TZHX

+0

Не то, что вы хотите достичь с помощью этого SP, но если вас интересует результат, вам нужно использовать параметр OUTPUT, или вы можете подумать о сохраненном Funciton или VIEW. Это зависит от ваших целей ... – Shnugo

ответ

2

вы должны пройти OUTPUT параметру

declare @z int 
exec TestTVP '1','22' ,@z output 

и удалить return из хранимой процедуры делают только

... 
select count(*) from @T1 
0

Вы можете использовать вне параметр, если вы хотите, чтобы вывод:

DECLARE @Z int 
EXEC TestTVP '2', '22',@z out 
Смежные вопросы