次の方法で共有


共通言語ランタイム (CLR) 統合を使用したデータベース オブジェクトの構築

適用対象: SQL Server

SQL Server と .NET Framework 共通言語ランタイム (CLR) の統合を使用して、データベース オブジェクトを構築できます。 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 ステートメントやクライアント アプリケーションから呼び出すことができます。

Note

効果的であるとクエリ オプティマイザーで判断された場合は、共通言語ランタイムでの 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 (共通言語ランタイム) 統合の概要