sys.dm_clr_properties (Transact-SQL)

適用対象:SQL Server (サポートされているすべてのバージョン) Azure SQL Managed Instance Analytics Platform System (PDW)

共通言語ランタイム (CLR) 統合SQL Server関連する各プロパティの行 (ホストされている CLR のバージョンと状態を含む) を返します。 ホストされる CLR は、 CREATE ASSEMBLYALTER ASSEMBLY、または DROP ASSEMBLY ステートメントを実行するか、CLR ルーチン、型、またはトリガーを実行することによって初期化されます。 sys.dm_clr_properties ビューでは、ユーザー CLR コードの実行がサーバーで有効になっているかどうかは指定されません。 ユーザー CLR コードの実行は、clr enabled オプションを 1 に設定したsp_configure ストアド プロシージャを使用して有効になります。

sys.dm_clr_properties ビューには、名前の列が含まれています。 このビューの各行には、ホストされている CLR のプロパティに関する詳細が表示されます。 このビューを使用して、ホストされる CLR に関する情報 (CLR のインストール ディレクトリ、CLR のバージョン、ホストされる CLR の現在の状態など) を収集します。 このビューは、サーバー コンピューター上の CLR のインストールに問題があるため、CLR 統合コードが機能していないかどうかを判断するのに役立ちます。

列名 データ型 説明
name nvarchar(128) プロパティの名前。
value nvarchar(128) プロパティの値。

プロパティ

ディレクトリ プロパティは、.NET Frameworkがサーバーにインストールされたディレクトリを示します。 サーバー コンピューターに複数の.NET Frameworkがインストールされている可能性があり、このプロパティの値は、使用しているインストール SQL Serverを識別します。

version プロパティは、サーバー上の.NET Frameworkおよびホストされている CLR のバージョンを示します。

sys.dm_clr_properties動的マネージド ビューは、SQL Serverホストされる CLR の状態を反映する状態プロパティに対して 6 つの異なる値を返すことができます。 これらは次のとおりです。

  • Mscoree is not loaded. (mscoree が読み込まれていない。)

  • Mscoree is loaded. (mscoree が読み込まれている。)

  • mscoree を使用してロックされた CLR バージョン。

  • CLR が初期化されます。

  • CLR の初期化が完全に失敗しました。

  • CLR が停止しています。

Mscoree が読み込まれずMscoree が読み込まれた状態は、サーバーの起動時にホストされている CLR 初期化の進行状況を示し、表示される可能性は高くはありません。

mscoree 状態のロックされた CLR バージョンは、ホストされている CLR が使用されていない場合に表示される可能性があるため、まだ初期化されていません。 ホストされる CLR は、DDL ステートメント ( CREATE ASSEMBLY (Transact-SQL) など) またはマネージド データベース オブジェクトが初めて実行されるときに初期化されます。

CLR が初期化された状態は、ホストされた CLR が正常に初期化されたことを示します。 これは、ユーザー CLR コードの実行が有効になっているかどうかを示すものではありません。 Transact-SQL sp_configure ストアド プロシージャを使用してユーザー CLR コードの実行を最初 有効にしてから無効にした場合、状態値は引き続き CLR 初期化されます

CLR 初期化が永続的に失敗した状態は、ホストされた CLR の初期化が失敗したことを示します。 メモリ不足が原因である可能性があります。または、SQL Serverと CLR の間のホスティング ハンドシェイクでエラーが発生した可能性もあります。 このような場合、エラー メッセージ 6512 または 6513 がスローされます。

CLR が停止状態になるのは、SQL Serverがシャットダウン中の場合のみです。

注釈

CLR 統合機能が強化されたため、このビューのプロパティと値は将来のバージョンのSQL Serverで変更される可能性があります。

アクセス許可

SQL Server と SQL Managed Instance では、VIEW SERVER STATE アクセス許可が必要です。

SQL Database BasicS0、および S1 のサービス目標、およびエラスティック プール内のデータベースの場合、サーバー管理者アカウント、Azure Active Directory 管理者アカウント、または ##MS_ServerStateReader##サーバー ロールのメンバーシップが必要です。 他のすべての SQL Database サービス目標では、データベースに対する VIEW DATABASE STATE アクセス許可または ##MS_ServerStateReader## サーバー ロールのメンバーシップのいずれかが必要です。

次の例では、ホストされる CLR に関する情報を取得します。

SELECT name, value   
FROM sys.dm_clr_properties;  

関連項目

動的管理ビューと動的関数 (Transact-SQL)
共通言語ランタイム関連の動的管理ビュー (Transact-SQL)