SQL Server 2005 整合 .NET CLR,開啟資料庫程式設計新紀元。本文為系列首篇,帶您在 10 分鐘內完成 CLR 啟用、Visual Studio 專案建立、純量函數開發、一鍵部署、SSMS 驗證與除錯全流程,並展望進階應用方向。
EXEC sp_configure 'clr enabled', 1;
RECONFIGURE;
GO
SqlClrProject。Test)。部署時會發布到此資料庫。



StrCount.cs (計算字串長度)。public partial class UserDefinedFunctions
{
[Microsoft.SqlServer.Server.SqlFunction]
public static SqlString StrCount()
{
return new SqlString("Hello");
}
}


修改程式碼接收參數並回傳長度:
[Microsoft.SqlServer.Server.SqlFunction]
public static string StrCount(string str)
{
return str.Length.ToString();
}
右鍵專案 → 建置 → 部署。輸出視窗顯示「部署成功」。

dbo.StrCount。SELECT dbo.StrCount('Hello World'); -- 回傳 11
SELECT dbo.StrCount('SQL Server CLR'); -- 回傳 14



在 Test.sql (專案腳本資料夾) 的 SELECT dbo.StrCount(...) 行打斷點 → 啟動除錯 (F5) → 單步進入 C# 程式碼,檢查變數、呼叫堆疊。跨語言除錯支援 TDS/HTTP 連線。
| 屬性 | 對應 SQL 物件 |
|---|---|
[SqlFunction] | 純量/資料表值函數 |
[SqlProcedure] | 預存程序 |
[SqlTrigger] | 觸發器 |
[SqlUserDefinedType] | 使用者定義型別 |
[SqlUserDefinedAggregate] | 使用者定義彙總 |
SqlChars vs SqlString、Format.Native vs UserDefined。