web-dev-qa-db-ja.com

SQL Serverビューまたはテーブル値関数?

SQL Serverでビューをいつ使用するか、テーブル値関数をいつ使用するかを決定するための優れた決定ツリーを持っている人はいますか?

20
Striker

どのビューもほとんど簡単にインラインテーブル値関数に変換できますが、その逆は当てはまりません。

構成をパラメーター化する必要がある場合は、インラインのテーブル値関数を使用します。インラインテーブル値関数は、オプティマイザーがビューと組み合わせて物事をプッシュできるという点で、基本的にパラメーター化されたビューです。マルチステートメントのテーブル値関数は、インラインテーブル値関数とはまったく異なります。

インラインのテーブル値関数でそれを実行できない場合は、マルチステートメントのテーブル値関数を使用してください。

13
Cade Roux

ビューで実行できない特定のことがあります(テーブル変数、結果セットを返す前の中間結果など)...それらが必要ない場合は、ビュー、必要な場合はsproc/udf :-)

2
Joel Martinez