1

コマンド パラメーターなしで関数/プロシージャを挿入ステートメント内で呼び出す方法。例えば

Insert into myTable (....) values (1,2,mySP_or_mySDF, 3,4)
4

3 に答える 3

4

使用することもできますINSERT INTO... SELECT

INSERT INTO myTable (col1, col2, col3....)
SELECT 1, 2, mySP_or_mySDF(), 3, 4

ストアド プロシージャからデータを取得する場合INSERTは、最初に一時テーブルを作成し、結果を一時テーブルに挿入する必要があります。その後、結果を使用して最終テーブルに挿入できます。

于 2012-11-21T13:53:51.000 に答える
3

試す

Insert into myTable (....) values (1,2,dbo.mySP_or_mySDF(), 3,4)
于 2012-11-21T13:51:17.090 に答える
1

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; に挿入します。

于 2012-11-21T14:15:47.937 に答える