AFAIK, вы не можете. То, что вы, вероятно, хотите сделать, это использовать функцию для ваших первых (или обоих) процедур. Функции могут возвращать только одну вещь, но они могут возвращать таблицу. Хранимые процедуры могут возвращать несколько результатов, но не к другим функциям/хранимым процедурам.
например:.
CREATE FUNCTION [dbo].[fn_GetSubordinates] (
@sPersonID VARCHAR(10),
@nLevels INT
)
RETURNS @tblSubordinates TABLE
(
Person_Id VARCHAR(10),
Surname char(25),
Firstname char(25)
)
AS
BEGIN
...
Ответ 3
Если вы используете SQL Server 2008, я бы рекомендовал вернуть параметр Table-Valued.
Вы можете сделать это с помощью выходной переменной в сохраненном proc. Например:
CREATE PROCEDURE sp_HelloWorld @MyReturnValue int OUT
AS
SELECT @MyReturnValue = 100
Return @MyReturnValue
Чтобы вызвать этот сохраненный процесс, выполните следующие действия:
DECLARE @TestReturnVal int
EXEC sp_HelloWorld @TestReturnVal output
SELECT @TestReturnVal
Ответ 5
Во-первых, вы не можете ВОЗВРАТ набор записей хранимой процедурой. По возвращении хранимая процедура может возвращать только целые числа.
Вы упомянули оператор SELECT, который является DQL и предназначен только для показа.
Как вы можете это сделать, так это то, что вы можете назначить набор записей глобальной временной таблице, к которой также можно получить доступ во внешней хранимой процедуре.