Как вызвать хранимую процедуру (с параметрами) из другой хранимой процедуры без временной таблицы

Я хранил процедуру A и хочу вызвать процедуру хранения B из A, передав параметр @mydate. Сохраненная процедура B возвращает набор строк, который я могу использовать далее в процедуре A.

Я исследовал это в Google, но ничего не нашел без использования временной таблицы. Есть ли простой способ получить это без временной таблицы.

PS: Я пытался сделать это, используя хранимую процедуру как A и функцию B легко. Но хочу знать, могу ли я сделать это, только используя хранимые процедуры.

Ответ 1

 Create PROCEDURE  Stored_Procedure_Name_2
  (
  @param1 int = 5  ,
  @param2 varchar(max),
  @param3 varchar(max)

 )
AS


DECLARE @Table TABLE
(
   /*TABLE DEFINITION*/
   id int,
   name varchar(max),
   address varchar(max)
)

INSERT INTO @Table 
EXEC Stored_Procedure_Name_1 @param1 , @param2 = 'Raju' ,@param3 [email protected]

SELECT id ,name ,address  FROM @Table  

Ответ 2

Вы можете просто вызвать команду Execute.

EXEC spDoSomthing @myDate

Изменить:

Поскольку вы хотите вернуть данные, это немного сложнее. Вместо этого вы можете использовать определенные пользователем функции, которые возвращают данные.

Ответ 3

Вы можете вызвать Хранимую процедуру, подобную этой, в Хранимой процедуре B.

CREATE PROCEDURE spA
@myDate DATETIME
AS
    EXEC spB @myDate

RETURN 0

Ответ 4

Вы можете создать переменную таблицы вместо таблицы tamp в процедуре A и выполнить процедуру B и вставить в временную таблицу по запросу.

DECLARE @T TABLE
(
TABLE DEFINITION
)
.
.
.
INSERT INTO @T
EXEC B @MYDATE

и вы продолжаете работу.

Ответ 5

Вы можете вызвать хранимую процедуру из другой хранимой процедуры, используя команду EXECUTE.

Скажем, ваша процедура X. Затем в X вы можете использовать

EXECUTE PROCEDURE Y () RETURNING_VALUES RESULT;"