サポートされている .NET Framework ライブラリ

SQL Server にホストされている共通言語ランタイム (CLR) を使用すると、ストアド プロシージャ、トリガー、ユーザー定義関数、ユーザー定義型、およびユーザー定義集計をマネージ コードで作成できます。.NET Framework クラス ライブラリに用意されている機能を使用すると、文字列操作、高度な算術演算、ファイル アクセス、暗号化などの機能を提供する組み込みのクラスにアクセスできます。これらのクラスは、任意のマネージ ストアド プロシージャ、ユーザー定義型、トリガー、ユーザー定義関数、またはユーザー定義集計からアクセスできます。

注意

グローバル アセンブリ キャッシュ (GAC) で、サポートされていないアセンブリを提供またはアップグレードすると、SQL Server アプリケーションが動作しなくなる可能性があります。これは、GAC でライブラリを提供またはアップグレードしても SQL Server 内でそれらのアセンブリが更新されないためです。アセンブリが SQL Server データベースと GAC の両方に存在する場合、アセンブリの 2 つのコピーが完全に一致する必要があります。一致しない場合、SQL Server CLR 統合によってアセンブリが使用されたときにエラーが発生します。GAC で、データベースにも登録されているアセンブリ (サポートされていない .NET Framework アセンブリを含む) を提供またはアップグレードする場合は、ALTER ASSEMBLY ステートメントを使用して SQL Server データベース内でもアセンブリのコピーを提供またはアップグレードしてください。詳細については、サポート技術情報の資料 949080 (https://go.microsoft.com/fwlink/?LinkID=154563) を参照してください。

サポートされているライブラリ

SQL Server 2005 以降、SQL Server には、サポートされている .NET Framework ライブラリの一覧が用意されています。これらのライブラリは、SQL Server との連携に必要な信頼性およびセキュリティの基準を満たしていることがテストで確認されています。サポートされているライブラリは、サーバーに明示的に登録することなく、コードから使用できます。SQL Server は、グローバル アセンブリ キャッシュ (GAC) からこれらのライブラリを直接読み込みます。

SQL Server の CLR 統合でサポートされるライブラリおよび名前空間を次に示します。

  • CustomMarshalers

  • Microsoft.VisualBasic

  • Microsoft.VisualC

  • mscorlib

  • System

  • System.Configuration

  • System.Data

  • System.Data.OracleClient

  • System.Data.SqlXml

  • System.Deployment

  • System.Security

  • System.Transactions

  • System.Web.Services

  • System.Xml

  • System.Core.dll

  • System.Xml.Linq.dll

サポートされていないライブラリ

サポートされていないライブラリは、マネージ ストアド プロシージャ、トリガー、ユーザー定義関数、ユーザー定義型、およびユーザー定義集計から呼び出すことができます。サポートされていないライブラリをコードで使用するには、CREATE ASSEMBLY ステートメントを使用して、これらのライブラリを SQL Server データベースに登録する必要があります。サポートされていないライブラリをサーバーに登録して実行する場合は、そのライブラリのセキュリティと信頼性を確認およびテストする必要があります。

たとえば、System.DirectoryServices 名前空間はサポートされていません。System.DirectoryServices.dll アセンブリをコードから呼び出す前に、このアセンブリを UNSAFE 権限で登録する必要があります。System.DirectoryServices 名前空間内のクラスは SAFE または EXTERNAL_ACCESS の要件を満たさないため、UNSAFE 権限が必要になります。詳細については、「CLR 統合プログラミング モデルの制限事項」および「CLR 統合のコード アクセス セキュリティ」を参照してください。