適用対象:SQL Server
Azure SQL Managed Instance
Analytics Platform System (PDW)
ホストされている CLR のバージョンと状態など、SQL Server 共通言語ランタイム (CLR) 統合に関連する各プロパティの行を返します。 ホストされたCLRは、 CREATE ASSEMBLY、 ALTER ASSEMBLY、または DROP ASSEMBLY 文を実行するか、任意のCLRルーチン、型、トリガーを実行することで初期化されます。 sys.dm_clr_properties ビューでは、ユーザー CLR コードの実行がサーバーで有効になっているかどうかは指定されません。 ユーザー CLR コードの実行は、clr enabled オプションが 1 に設定されたsp_configure ストアド プロシージャを使用して有効になります。
sys.dm_clr_properties ビューには、name および value 列が含まれています。 このビューの各行は、ホストされている CLR のプロパティに関する詳細を提供します。 このビューを使用して、ホストされる CLR に関する情報 (CLR のインストール ディレクトリ、CLR のバージョン、ホストされる CLR の現在の状態など) を収集します。 このビューは、サーバー コンピューターへの CLR のインストールに問題があるため、CLR 統合コードが機能していないかどうかを判断するのに役立ちます。
| 列名 | データの種類 | Description |
|---|---|---|
| 名前 | nvarchar(128) | プロパティの名前。 |
| 価値 | nvarchar(128) | プロパティの値。 |
プロパティ
directory プロパティは、.NET Framework がサーバーにインストールされたディレクトリを示します。 サーバー コンピューターに .NET Framework が複数インストールされている可能性があり、このプロパティの値によって、SQL Server で使用されているインストールが識別されます。
version プロパティは、サーバー上の .NET Framework とホストされている CLR のバージョンを示します。
sys.dm_clr_properties動的マネージド ビューは、SQL Server でホストされている CLR の状態を反映する、state プロパティに対して 6 つの異なる値を返すことができます。 これらは次のとおりです。
Mscoree is not loaded. (mscoree が読み込まれていない。)
Mscoree is loaded. (mscoree が読み込まれている。)
mscoree でロックされた CLR バージョン。
CLR が初期化されます。
CLR の初期化が完全に失敗しました。
CLR が停止しています。
Mscoree が読み込まれずMscoree が読み込まれます状態は、サーバーの起動時にホストされている CLR の初期化の進行状況を示しており、表示されない可能性があります。
mscoree 状態の Locked 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 の将来のバージョンで変更される可能性があります。
Permissions
SQL Server と SQL Managed Instance では、VIEW SERVER STATE アクセス許可が必要です。
SQL Database の Basic、S0、S1 サービス対象、および Elastic Pool のデータベースの場合、サーバー管理者アカウント、Microsoft Entra 管理者アカウント、または ##MS_ServerStateReader##サーバー ロールのメンバーシップが必要です。 他のすべての SQL Database サービス目標では、データベースに対する VIEW DATABASE STATE アクセス許可または ##MS_ServerStateReader## サーバー ロールのメンバーシップのいずれかが必要です。
SQL Server 2022 以降でのアクセス許可
サーバー VIEW PERFORMANCE STATE権限が必要です。
Examples
次の例では、ホストされる CLR に関する情報を取得します。
SELECT name, value
FROM sys.dm_clr_properties;
こちらも参照ください
動的管理ビューと動的管理関数 (Transact-SQL)
共通言語ランタイム関連の動的管理ビュー (Transact-SQL)