ユーザー定義集計の作成
適用対象 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を使用して clr enabled サーバー構成オプションが有効になっていない限り、これらの参照は SQL Server では実行されません。
Microsoft Visual Studio で SQL Server プロジェクトを配置すると、そのプロジェクトで指定されたデータベースにアセンブリが登録されます。 プロジェクトを配置すると、SqlFunction
属性で注釈が付けられたすべてのメソッドの CLR 関数もデータベースに作成されます。 詳細については、「CLR データベース オブジェクト配置する」を参照してください。