Microsoft SQL Server 2012 Bible by

ユーザー定義関数の2つ目のタイプであるインラインテーブル値関数は、ビューに似ています。 どちらもストアドのSELECT文のためのラッピングです。 インラインテーブル値ユーザー定義関数は、ビューの利点をそのままに、パラメータを追加したものです。

Creating an Inline Table-Valued Function

インライン テーブル値ユーザー定義関数には BEGIN/END ボディがありません。

CREATE FUNCTION FunctionName (InputParameters)RETURNS TableASRETURN (Select Statement);

次のインラインテーブル値付き関数は ufnGetOrderTotalByProduct と似ていますが、提供された製品の単一の注文合計を返すのではなく、提供された製品カテゴリの製品名と注文合計を含むセットを返します。

CREATE FUNCTION dbo.ufnGetOrderTotalByProductCategory(@ProductCategoryID int)RETURNS TABLEAS RETURN ( SELECT p.ProductID, p.Name, sum(sod.OrderQty) as TotalOrders FROM Production.Product p JOIN Sales.SalesOrderDetail sod ON p.ProductID = sod.ProductID JOIN Production.ProductSubcategory s ON p.ProductSubcategoryID = s.ProductSubcategoryID JOIN Production.ProductCategory c ON s.ProductCategoryID = c.ProductCategoryID WHERE c.ProductCategoryID = @ProductCategoryID GROUP BY p.ProductID, p.Name ); GO

インラインテーブル値関数の呼び出し

dbo.ufnGetOrderTotalByProductCategoryでデータを取得するには、関数 …

を呼び出します。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です