CLR トリガーの作成

適用対象:SQL Server

SQL Serverの内部には、Microsoft .NET Framework 共通言語ランタイム(CLR)で作成されたアセンブリでプログラミングされたデータベース オブジェクトを作成できます。 CLR で提供される豊富なプログラミング モデルを利用できるデータベース オブジェクトには、DML トリガー、DDL トリガー、ストアド プロシージャ、関数、集計関数、型などがあります。

SQL Serverで CLR トリガー (DML トリガーまたは DDL トリガー) を作成するには、次の手順を実行します。

  • トリガーを .NET Framework でサポートされる言語でクラスとして定義します。 CLR でのトリガーのプログラミング方法の詳細については、「 CLR トリガー」をご覧ください。 次に、適切な言語コンパイラを使用して.NET Frameworkでアセンブリを構築するためにクラスをコンパイルします。

  • CREATE ASSEMBLY ステートメントを使用して、 SQL Serverにアセンブリを登録します。 SQL Server のアセンブリの詳細については、アセンブリ(データベース エンジンを参照してください。

  • 登録したアセンブリを参照するトリガーを作成します。

注意

Microsoft Visual Studioで SQL Server プロジェクトをデプロイすると、そのプロジェクトで指定されたデータベースにアセンブリが登録されます。 また、プロジェクトを配置することで、 SqlTrigger 属性で注釈が付けられたすべてのメソッドの CLR トリガーがデータベースに作成されます。 詳細については、「 CLR データベース オブジェクトの配置」を参照してください。

注意

SQL ServerがCLRコードを実行する機能は、既定では無効になっています。 マネージド コード モジュールを参照するデータベース オブジェクトを作成、変更、削除することはできますが、sp_configure (Transact-SQL) を使用してclr enabled オプション を有効にしないと、SQL Serverでは、これらの参照が実行されません。

アセンブリを作成、変更、または削除するには

CLR トリガーを作成するには

参照

DML トリガー
CLR (共通言語ランタイム) 統合のプログラミング概念
CLR データベース オブジェクトからのデータ アクセス