ユーザー定義集計の作成
適用対象 SQL Server 2016 (13.x) 以降のバージョン
CLR アセンブリでプログラミングされている SQL Server の内部にデータベース オブジェクトを作成できます。 CLR が提供する豊富なプログラミング モデルを使用できるデータベース オブジェクトには、トリガー、ストアド プロシージャ、関数、集計関数、型などがあります。
Transact-SQL が提供する組み込みの集計関数と同様に、ユーザー定義集計関数も一連の値に対して計算を実行し、その結果 1 つの値を返します。
SQL Server でのユーザー定義集計関数の作成は、次の手順で行われます。
Microsoft .NET Framework でサポートされる言語のクラスとしてユーザー定義集計関数を定義します。 CLR でのユーザー定義集計のプログラミング方法の詳細については、「 CLR ユーザー定義集計」を参照してください。 適切な言語コンパイラを使用してこのクラスをコンパイルし、CLR アセンブリを作成します。
CREATE ASSEMBLY ステートメントを使用して、SQL Server にアセンブリを登録します。 SQL Server のアセンブリの詳細については、「アセンブリ (データベース エンジン)」を参照してください。
CREATE AGGREGATE ステートメントを使用して、登録済みのアセンブリを参照するユーザー定義集計を作成します。
SQL Server では、CLR コードの実行は既定でオフになっています。 マネージド コード モジュールを参照するデータベース オブジェクトを作成、変更、削除することはできますが、sp_configure (Transact-SQL) を使用して clr enabled オプション を有効にしないと、これらの参照は SQL Server で実行されません。
Microsoft Visual Studio で SQL Server プロジェクトを配置すると、そのプロジェクトで指定されたデータベースにアセンブリが登録されます。 また、プロジェクトを配置することで、 SqlFunction 属性で注釈が付けられたすべてのメソッドの CLR 関数がデータベースに作成されます。 詳細については、「 CLR データベース オブジェクトの配置」を参照してください。