プロシージャAを保存し、@mydate
パラメータを渡すことでAからストアプロシージャBを呼び出したい。ストアドプロシージャBは、プロシージャAでさらに使用できる行セットを返します。
Googleでこれを調査しましたが、一時テーブルを使用しなければ何も見つかりませんでした。一時テーブルなしでこれを取得する簡単な方法はありますか。
P.S .:ストアドプロシージャをAとして、関数をBとして簡単に実行してみました。しかし、ストアドプロシージャを使用するだけでそれを実現できるかどうかを知りたいです。
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 =@param3
SELECT id ,name ,address FROM @Table
Executeコマンドを呼び出すだけです。
EXEC spDoSomthing @myDate
編集:
データを返したいので、それは少し難しいです。代わりに、データを返すユーザー定義関数を使用できます。
ストアドプロシージャB内でこのようなストアドプロシージャを呼び出すことができます。
CREATE PROCEDURE spA
@myDate DATETIME
AS
EXEC spB @myDate
RETURN 0
プロシージャAで一時テーブルの代わりにテーブル変数を作成し、プロシージャBを実行して、以下のクエリで一時テーブルに挿入できます。
DECLARE @T TABLE
(
TABLE DEFINITION
)
.
.
.
INSERT INTO @T
EXEC B @MYDATE
そして操作を続行します。