0

テーブルを返す SQL 関数があります。結果テーブルを取得して、使用する一時テーブルに返す方法を考えています (この場合は @Values と呼ばれます)。

次に例を示します。

declare @values table(
MinValue money, 
MaxVale money
)


/*
Fill @Values with dbo.GenPayValues function 
*/

現在、次のような関数からのみ選択できます。

SELECT * 
FROM dbo.GenPayValues(13.00, 25.00)

これが可能かどうか誰にもわかりますか?これを読んでくれてありがとう。

4

2 に答える 2

2

これは、構造がまったく同じである限り機能します。

INSERT @values
SELECT * 
FROM dbo.GenPayValues(13.00, 25.00)

ただし、構造が異なる場合は、代わりに次のようにします。

SELECT *
INTO #values
FROM dbo.GenPayValues(13.00, 25.00)

これにより、変数ではなく一時テーブルが作成されますが、スコープの最後で削除されます。

于 2013-08-21T17:44:56.743 に答える
2

ただINSERT

INSERT INTO @values
SELECT *
FROM dbo.GenPayValues(13.00, 25.00)

dbo.GenPayValuesテーブルを宣言したのと同じ順序でデータを返すと想定しています@values-無関係な列はありません。そうでない場合は、それらを並べ替えるか、明示的に選択できます。

INSERT INTO @values(MinValue, MaxVale)
SELECT MinValue, MaxValue
FROM dbo.GenPayValues(13.00, 25.00)
于 2013-08-21T17:45:13.743 に答える