支援的 .NET Framework 程式庫
使用裝載在 SQL Server 中的 Common Language Runtime (CLR) ,您可以在 Managed 程式碼中撰寫預存程式、觸發程式、使用者定義函數、使用者定義類型和使用者定義匯總。 藉由 .NET Framework 類別庫所提供的功能,您可以存取預先建立的類別,這些類別可提供字串操作、進階數學運算、檔案存取、加密等多項功能。 您可以透過任何 Managed 預存程序、使用者定義型別、觸發程序、使用者定義函數或使用者定義彙總來存取這些類別。
注意
如果您在全域組件快取中服務或升級不支援的元件, (GAC) ,您的SQL Server。 如果元件同時存在於SQL Server CLR 整合中。 如果您服務或升級也已在資料庫中註冊的 GAC 中的任何元件,包括不支援的.NET Framework元件,請務必使用 語句來服務或升級SQL Server資料庫中 ALTER ASSEMBLY
的元件複本。 如需詳細資訊,請參閱 知識庫文章 949080。
支援的程式庫
從SQL Server開始,有一份支援的.NET Framework程式庫清單,這些程式庫已經過測試,以確保它們符合與SQL Server互動的可靠性和安全性標準,直接從全域組件快取 (GAC) 載入它們。
SQL Server中 CLR 整合所支援的程式庫/命名空間如下:
CustomMarshalers
Microsoft.VisualBasic
Microsoft.VisualC
mscorlib
系統
System.Configuration
System.Data
System.Data.OracleClient
System.Data.SqlXml
System.Deployment
System.Security
System.Transactions
System.Web.Services
System.Xml
System.Core.dll
System.Xml.Linq.dll
不支援的程式庫
不支援的程式庫仍可以從 Managed 預存程序、觸發程序、使用者定義函數、使用者定義型別和使用者定義彙總加以呼叫。 您必須先在SQL Server資料庫中使用 CREATE ASSEMBLY
語句來註冊不支援的程式庫,才能在程式碼中使用。 為了確保安全性和可靠性,任何在伺服器上註冊及執行的不支援程式庫都應該經過檢閱和測試。
例如,System.DirectoryServices
命名空間並不受支援。 您必須使用 UNSAFE
權限註冊 System.DirectoryServices.dll 組件,才能從程式碼中加以呼叫。 UNSAFE
權限是必要的,因為 System.DirectoryServices
命名空間中的類別並不符合 SAFE
或 EXTERNAL_ACCESS
的需求。 如需詳細資訊,請參閱 CLR 整合程式設計模型限制 和 CLR 整合程式碼存取安全性。