支援的 .NET Framework 程式庫
適用於:SQL Server
在 SQL Server 中裝載的 Common Language Runtime (CLR) 中,您可以在 Managed 程式代碼中撰寫預存程式、觸發程式、使用者定義函數、使用者定義類型和使用者定義匯總。 透過 .NET Framework 類別庫中找到的功能,您可以存取預先建置的類別,以提供字串操作、進階數學作業、檔案存取、密碼編譯等功能。 您可以從任何 Managed 預存程式、使用者定義型別、觸發程式、使用者定義函數或使用者定義匯總存取這些類別。
注意
如果您在全域程式集緩存中服務或升級不支援的元件(GAC),您的 SQL Server 應用程式可能會停止運作。 這是因為 GAC 中的維護或升級連結庫不會更新 SQL Server 內的這些元件。 如果元件同時存在於 SQL Server 資料庫和 GAC 中,則元件的兩個復本必須完全相符。 如果它們不相符,當 SQL Server CLR 整合使用元件時,就會發生錯誤。 如果您服務或升級 GAC 中也註冊在資料庫中的任何元件,包括不支援的 .NET Framework 元件,請務必使用 ALTER ASSEMBLY 語句來服務或升級 SQL Server 資料庫內的元件複本。 如需詳細資訊,請參閱 知識庫文章 949080。
支援的連結庫
從 SQL Server 2005 (9.x) 開始,SQL Server 有一份支援的 .NET Framework 連結庫清單,這些連結庫已經過測試,以確保它們符合與 SQL Server 互動的可靠性和安全性標準。 支持的連結庫不需要在伺服器上明確註冊,才能在您的程式代碼中使用;SQL Server 會直接從全域程式集緩存 (GAC) 載入它們。
SQL Server 中 CLR 整合所支援的連結庫/命名空間包括:
- CustomMarshalers
- Microsoft.VisualBasic
- Microsoft.VisualC
- mscorlib
- 系統
- System.Configuration
- System.Core
- System.Data
- System.Data.OracleClient
- System.Data.SqlXml
- System.Deployment
- System.Security
- System.Transactions
- System.Web.Services
- System.Xml
- System.Xml.Linq
不支援的連結庫
您仍然可以從受控預存程式、觸發程式、使用者定義函式、使用者定義型別和使用者定義匯總呼叫不支援的連結庫。 不支援的連結庫必須先使用 CREATE ASSEMBLY 語句在 SQL Server 資料庫中註冊,才能在您的程式代碼中使用。 在伺服器上註冊並執行的任何不支援的連結庫,都應該檢閱及測試安全性和可靠性。
例如, 不支援 System.DirectoryServices 命名空間。 您必須先向 UNSAFE 許可權註冊System.DirectoryServices.dll元件,才能從程式代碼呼叫它。 UNSAFE 許可權是必要的,因為 System.DirectoryServices 命名空間中的類別不符合 SAFE 或 EXTERNAL_ACCESS 的需求。 如需詳細資訊,請參閱 CLR 整合程式設計模型限制 和 CLR 整合程式代碼存取安全性。