Microsoft SQL Server 現已支援與 Microsoft Windows .NET Framework 的共用語言執行平台(CLR)整合。CLR 為受控程式碼提供跨語言整合、程式碼存取安全性、物件生命週期管理,以及偵錯與分析支援等服務。對 SQL Server 使用者與應用程式開發人員而言,這意味著您可以使用任何 .NET Framework 語言(如 Visual Basic .NET、Visual C#)來撰寫預存程序、觸發器、使用者定義型別、使用者定義函數(標量與資料表值)、以及使用者定義彙總函數。
一般原則以 T-SQL 為主,但在下列情況建議考慮使用 CLR:
在 SQL Server 2005/2008 中,CLR 預設為關閉狀態。請執行下列 T-SQL 啟用:
sp_configure 'show advanced options', 1;
GO
RECONFIGURE;
GO
sp_configure 'clr enabled', 1;
GO
RECONFIGURE;
GO
CREATE ASSEMBLY AssemblyName FROM 'DLL路徑'
-- 範例
CREATE ASSEMBLY MyAssembly FROM 'C:\hello.dll'
優點:語法簡單,屬外部參考,易於識別來源檔案。
缺點:DLL 路徑必須為 SQL Server 可存取,部署時 DLL 需隨伺服器變動而更新。
CREATE ASSEMBLY AssemblyName FROM 0x123344...
-- 其中 0x123344... 為 DLL 檔案的十六進位內容,可用 UltraEdit 等工具提取
優點:將程式碼以二進位內嵌資料庫,一定程度上保護原始碼。若 DLL 較小,推薦使用此法。
關於如何在 Visual Studio 中撰寫 CLR 程式碼,請參閱後續章節。