コマンド パラメーターなしで関数/プロシージャを挿入ステートメント内で呼び出す方法。例えば
Insert into myTable (....) values (1,2,mySP_or_mySDF, 3,4)
コマンド パラメーターなしで関数/プロシージャを挿入ステートメント内で呼び出す方法。例えば
Insert into myTable (....) values (1,2,mySP_or_mySDF, 3,4)
使用することもできますINSERT INTO... SELECT
INSERT INTO myTable (col1, col2, col3....)
SELECT 1, 2, mySP_or_mySDF(), 3, 4
ストアド プロシージャからデータを取得する場合INSERT
は、最初に一時テーブルを作成し、結果を一時テーブルに挿入する必要があります。その後、結果を使用して最終テーブルに挿入できます。
試す
Insert into myTable (....) values (1,2,dbo.mySP_or_mySDF(), 3,4)
SQL ステートメントを除いて、SELECT/UPDATE/INSERT ステートメント内でストアド プロシージャを呼び出すことはできません。
insert into <whatever>
exec <some sql statement here>;
(および関連する構成要素)。
ストアド プロシージャは実際には値を返しません。まあ、彼らは整数を返します。したがって、次のことができます。
declare @retval int;
exec @retval = mysp;
insert into myTable(col1, col2, col3, col4)
select 1, 2, @retval, 3, 4
sp 本体に次のステートメントを含めることで、ストアド プロシージャで 4 つの値すべてを "返す" ことができます。
select 1, 2, <whatever>, 3, 4
そして myTable(col1, col2, col3, col4) exec mysp; に挿入します。