次の方法で共有


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 パラメーターが含まれていたり、ユーザー定義関数から値が返される場合も、直列プランで実行する必要があります。

このセクションのトピックでは、次の内容について説明します。

関連項目

その他の技術情報

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