0

stored procedures生産中のものはたくさんありますが、ありませんfunctions

ここMSDNには、の定義がありCREATE FUNCTIONます。それは次のように言っています:

SQL Server 2012でユーザー定義関数を作成します。ユーザー定義関数は、パラメーターを受け取り、複雑な計算などのアクションを実行し、そのアクションの結果を返すTransact-SQLまたは共通言語ランタイム(CLR)ルーチンです。値として。戻り値は、スカラー(単一)値またはテーブルのいずれかです。このステートメントを使用して、次の方法で使用できる再利用可能なルーチンを作成します。

私のストアドプロシージャは、すでに上記のすべてを達成しているようです。

functionではなくを選択した場合の明確な状況は何stored procedureですか?

4

1 に答える 1

3

より大きなクエリの一部として統合された結果を使用する場合。

たとえば、値関数をテーブル化することができjoincross apply結果の各行のスカラーUDFを評価できます(これはパフォーマンスに影響を与える可能性があるため、注意が必要です)。

ストアドプロシージャの場合、より広いクエリで結合できるように、それらを実行して結果を一時テーブルなどにキャプチャする必要があります。また、Scalar UDFの動作をシミュレートして行ごとに実行するには、カーソルなどが必要になります。

于 2013-03-26T07:57:11.110 に答える