CLR (共通言語ランタイム) 統合によるデータベース オブジェクトの構築
SQL Server と .NET Framework CLR (共通言語ランタイム) との統合を使用してデータベース オブジェクトを構築できます。Microsoft SQL Server の内部で実行されるマネージ コードを "CLR ルーチン" と呼びます。CLR ルーチンには、次のものがあります。
スカラー UDF (ユーザー定義スカラー値関数)
ユーザー定義 TVF (テーブル値関数)
UDP (ユーザー定義プロシージャ)
ユーザー定義トリガー
CLR ルーチンは、マネージ コード内ではそれぞれ同じ構造になります。CLR ルーチンは、クラスの public static (Microsoft Visual Basic .NET では shared) メソッドにマップされます。ルーチン以外に、.NET Framework を使用して UDT (ユーザー定義型) やユーザー定義集計関数を定義することもできます。UDT とユーザー定義集計は、.NET Framework クラス全体にマップされます。
各種類の .NET Framework ルーチンには Transact-SQL 宣言があり、SQL Server で同等の Transact-SQL を使用できる任意の場所で使用できます。たとえば、スカラー UDF は任意のスカラー式で使用できます。また、TVF は任意の FROM 句で使用できます。プロシージャは、EXEC ステートメントやクライアント アプリケーションから呼び出すことができます。
注 |
---|
効果的であるとクエリ オプティマイザーで判断された場合は、共通言語ランタイムでの CLR オブジェクト (ユーザー定義関数、ユーザー定義型、またはトリガー) の実行を複数のスレッドで行うことができます (並列プラン)。ただし、ユーザー定義関数がデータにアクセスする場合は、直列プランで実行されます。SQL Server 2008 よりも前のサーバー バージョンで実行したときに、ユーザー定義関数に LOB パラメーターが含まれていたり、ユーザー定義関数から値が返される場合も、直列プランで実行する必要があります。詳細については、「並列クエリ処理」を参照してください。 |
Visual Studio .NET 2003 は、CLR 統合プログラミングには使用できない点に注意してください。SQL Server には .NET Framework がプレインストールされていますが、Visual Studio .NET 2003 では .NET Framework 2.0 アセンブリを使用できません。
このセクションのトピックでは、次の内容について説明します。
CLR 統合の概要
SQL Server と CLR との統合を使用したオブジェクトのコンパイルに必要なライブラリと名前空間の概要について説明します。また、例として "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 トリガーの実装方法と使用方法について説明します。