次の方法で共有


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 ビューには、name および value 列が含まれています。 このビューの各行は、ホストされている CLR のプロパティに関する詳細を提供します。 このビューを使用して、ホストされる CLR に関する情報 (CLR のインストール ディレクトリ、CLR のバージョン、ホストされる CLR の現在の状態など) を収集します。 このビューは、サーバー コンピューターへの CLR のインストールに問題があるため、CLR 統合コードが機能していないかどうかを判断するのに役立ちます。

列名 データ型 説明
name nvarchar(128) プロパティの名前。
value 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 の将来のバージョンで変更される可能性があります。

アクセス許可

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

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

SQL Server 2022 以降でのアクセス許可

サーバーに対する VIEW SERVER PERFORMANCE STATE アクセス許可が必要です。

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

SELECT name, value   
FROM sys.dm_clr_properties;  

関連項目

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