sys.dm_clr_properties (Transact-SQL)

適用於:SQL ServerAzure SQL 受控執行個體Analytics Platform System (PDW)

針對與 SQL Server Common Language Runtime (CLR) 整合相關的每個屬性,傳回一個數據列,包括裝載 CLR 的版本和狀態。 裝載的 CLR 是藉由執行 CREATE ASSEMBLYALTER ASSEMBLY 或 DROP ASSEMBLY 語句,或執行任何 CLR 例程、類型或觸發程式來初始化。 sys.dm_clr_properties檢視未指定伺服器上是否已啟用使用者 CLR 程式代碼的執行。 使用 sp_configure 預存程式,將 clr啟用選項設為1,即可 啟用使用者 CLR 程式代碼的執行。

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動態 Managed 檢視可以傳回狀態屬性的六個不同的值,以反映 SQL Server 裝載 CLR 的狀態。 畫面如下:

  • 未載入 Mscoree。

  • Mscoree 已載入。

  • 使用 mscoree 鎖定的 CLR 版本。

  • CLR 已初始化。

  • CLR 初始化永久失敗。

  • CLR 已停止。

Mscoree 未載入,且 Mscoree 已載入狀態會顯示伺服器啟動時託管 CLR 初始化的進度,而且不太可能看到。

在未使用裝載 CLR 的情況下,可能會看到具有 mscoree 狀態的鎖定 CLR 版本,因此尚未初始化它。 裝載的 CLR 會在第一次執行 DDL 語句(例如 CREATE ASSEMBLY (Transact-SQL)或 Managed 資料庫物件時初始化。

CLR 已初始化狀態表示裝載的 CLR 已成功初始化。 請注意,這不會指出是否啟用使用者 CLR 程式代碼的執行。 如果先啟用使用者 CLR 程式代碼的執行,然後使用 Transact-SQL sp_configure 預存程式停用,狀態值仍會 初始化 CLR。

CLR 初始化永久失敗狀態表示裝載的 CLR 初始化失敗。 記憶體壓力可能是原因,也可能是因為 SQL Server 與 CLR 之間的裝載交握失敗。 在這種情況下,將會擲回錯誤訊息 6512 或 6513。

只有在 SQL Server 正在關閉時,才會看到 CLR 停止狀態

備註

由於 CLR 整合功能的增強功能,此檢視的屬性和值可能會在未來的 SQL Server 版本中變更。

權限

在 SQL Server 和 SQL 受控執行個體上,需要 VIEW SERVER STATE 權限。

在 SQL 資料庫 基本、S0 和 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)
Common Language Runtime 相關動態管理檢視 (Transact-SQL)