CLR (共通言語ランタイム) 統合によるデータベース オブジェクトの構築

適用対象:SQL Server

.NET Framework共通言語ランタイム (CLR) とのSQL Server統合を使用して、データベース オブジェクトをビルドできます。 Microsoft SQL Server 内で実行されるマネージド コードは、"CLR ルーチン" と呼ばれます。これらのルーチンには、次のものが含まれます。

  • スカラー UDF (ユーザー定義スカラー値関数)

  • ユーザー定義 TVF (テーブル値関数)

  • UDP (ユーザー定義プロシージャ)

  • ユーザー定義トリガー

CLR ルーチンは、マネージド コード内ではそれぞれ同じ構造になります。 これらは、クラスのパブリック、静的 (Microsoft Visual Basic .NET で共有) メソッドにマップされます。 ルーチン以外に、.NET Framework を使用して UDT (ユーザー定義型) やユーザー定義集計関数を定義することもできます。 UDT とユーザー定義集計は、.NET Framework クラス全体にマップされます。

.NET Framework ルーチンの各型には Transact-SQL 宣言があり、Transact-SQL と同等のステートメントを使用できるSQL Server内の任意の場所で使用できます。 たとえば、スカラー UDF は任意のスカラー式で使用できます。 また、TVF は任意の FROM 句で使用できます。 プロシージャは、EXEC ステートメントやクライアント アプリケーションから呼び出すことができます。

注意

効果的であるとクエリ オプティマイザーで判断された場合は、共通言語ランタイムでの CLR オブジェクト (ユーザー定義関数、ユーザー定義型、またはトリガー) の実行を複数のスレッドで行うことができます (並列プラン)。 ただし、ユーザー定義関数がデータにアクセスする場合、実行はシリアル プランで行われます。 SQL Server 2008 (10.0.x) より前のバージョンのサーバーで実行した場合、ユーザー定義関数に LOB パラメーターまたは戻り値が含まれている場合は、実行もシリアル プラン上にある必要があります。

次の表に、このセクションで説明するトピックを示します。

CLR 統合の概要
CLR と SQL Server の統合を使用してオブジェクトをコンパイルするために必要なライブラリと名前空間の概要について説明します。 また、例として "Hello World" CLR ストアド プロシージャを紹介します。

サポートされている .NET Framework ライブラリ
CLR 統合でサポートされる .NET Framework ライブラリに関する情報を提供します。

CLR 統合プログラミング モデルの制限事項
CLR 統合プログラミング モデルの制限事項に関する情報を提供します。

.NET Framework での SQL Server データ型
SQL Serverデータ型とその.NET Framework同等の概要。

CLR 統合のカスタム属性の概要
CLR 統合のカスタム属性に関する情報を提供します。

CLR ユーザー定義関数
テーブル値関数、スカラー関数、ユーザー定義集計関数など、さまざまな種類の CLR 関数の実装方法と使用方法について説明します。

CLR ユーザー定義型
CLR のユーザー定義型を実装して使用する方法について説明します。

CLR ストアド プロシージャ
CLR のストアド プロシージャを実装して使用する方法について説明します。

CLR トリガー
CLR のトリガーを実装して使用する方法について説明します。

参照

CLR (共通言語ランタイム) 統合の概要