Sql-Server

禁用“CLR”時,“HierarchyID”類型如何工作?

  • July 13, 2018

以下語句sp_configure 'clr enabled'返回:

name        minimum maximum config_value    run_value
clr enabled 0       1       0               0

我認為這意味著沒有CLR對象;但是,如果我執行以下語句,我會得到這些:

SELECT * FROM sys.assembly_files

在此處輸入圖像描述

SELECT * FROM sys.assembly_types

在此處輸入圖像描述

我已經讀過The HierarchyID type is available to CLR clients as the SqlHierarchyId data type.

如何在沒有CLR啟用的情況下使用它,為什麼我需要啟用它來創建我自己的CLR對象?

clr enabled伺服器配置選項僅控制使用者程序集是否可以由 SQL Server 實例執行。

,hierarchyid和類型是系統geometryCLR類型。它們包含在系統程序集中,因此無論設置如何都可用。geography``clr enabled

同樣,依賴 CLR 集成的其他系統功能(如FORMAT(SQL Server 2012 及更高版本)即使clr enabled關閉也可用。

如果您需要hierarchyid在自定義 CLR 常式中操作數據,則需要通過此設置啟用使用者 clr 程序集。

另請參閱:分層數據 (SQL Server)

引用自:https://dba.stackexchange.com/questions/77608