首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> SQL Server 資料庫 >> 關於SqlServer

SQL Server CLR 整合全攻略(一):CLR 簡介與環境配置

     編輯:關於SqlServer

什麼是 SQL Server CLR 整合?

Microsoft SQL Server 現已支援與 Microsoft Windows .NET Framework 的共用語言執行平台(CLR)整合。CLR 為受控程式碼提供跨語言整合、程式碼存取安全性、物件生命週期管理,以及偵錯與分析支援等服務。對 SQL Server 使用者與應用程式開發人員而言,這意味著您可以使用任何 .NET Framework 語言(如 Visual Basic .NET、Visual C#)來撰寫預存程序、觸發器、使用者定義型別、使用者定義函數(標量與資料表值)、以及使用者定義彙總函數。

CLR 整合的主要優勢

  • 更優秀的程式設計模型
  • 強化的安全性與防護機制
  • 能夠自訂資料型別與彙總函數
  • 透過標準化環境簡化開發流程
  • 具備提升效能與擴展性的潛力

如何在 T-SQL 與 CLR 之間抉擇?

一般原則以 T-SQL 為主,但在下列情況建議考慮使用 CLR:

  • 涉及大量邏輯判斷與運算,例如在資料庫層級實作自訂加解密演算法
  • T-SQL 無法處理的需求,如在 SQL 中進行正規表示式比對
  • 邏輯過於複雜需大量游標處理時(需實測效能,CLR 不一定比游標快,關鍵在於寫法)

啟用 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

建立組件的兩種方法

方法一:從 DLL 檔案建立

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 程式碼,請參閱後續章節。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved