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

SQL Server 2005 CLR 入門 (1):從零建立首個 CLR 純量函數

     編輯:關於SqlServer

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

CLR 整合核心優勢

  • 用 C#/VB.NET/C++ 編寫預存程序、函數、觸發器、型別、彙總。
  • VS 2005 專案模板支援開發/部署/除錯一體化。
  • 跨語言無縫除錯:T-SQL 呼叫 CLR 可單步進入 C# 程式碼。
  • 組件部署在資料庫內,備份/還原/鏡像自動同步。

Step 1:啟用 CLR (伺服器層級,一次即可)

EXEC sp_configure 'clr enabled', 1;
RECONFIGURE;
GO

Step 2:建立 VS SQL Server 專案

  1. VS 2005/2008 → 新增專案 → 資料庫 → SQL Server 專案 (目標 .NET 2.0)。名稱 SqlClrProject。
  2. 加入資料庫參考:新增連線 → 選擇目標資料庫 (如 Test)。部署時會發布到此資料庫。
  3. 提示啟用 SQL/CLR 除錯 → 是。

新增專案對話框

加入資料庫參考

選擇目標資料庫

啟用除錯提示

Step 3:加入使用者定義函數

  1. 右鍵專案 → 加入 → 新增項目 → 使用者定義函數。命名 StrCount.cs (計算字串長度)。
  2. 系統產生範本:
    public partial class UserDefinedFunctions
    {
        [Microsoft.SqlServer.Server.SqlFunction]
        public static SqlString StrCount()
        {
            return new SqlString("Hello");
        }
    }

加入新項目選單

命名函數

Step 4:實作邏輯並部署

修改程式碼接收參數並回傳長度:

[Microsoft.SqlServer.Server.SqlFunction]
public static string StrCount(string str)
{
    return str.Length.ToString();
}

右鍵專案 → 建置 → 部署。輸出視窗顯示「部署成功」。

部署選單

Step 5:SSMS 驗證與除錯

  1. SSMS 物件總管 → 可程式性 → 函數 → 純量值函數 → 見 dbo.StrCount。
  2. 新增查詢執行:
    SELECT dbo.StrCount('Hello World');  -- 回傳 11
    SELECT dbo.StrCount('SQL Server CLR'); -- 回傳 14

SSMS 見函數

執行查詢

執行結果

Step 6:VS 除錯體驗

在 Test.sql (專案腳本資料夾) 的 SELECT dbo.StrCount(...) 行打斷點 → 啟動除錯 (F5) → 單步進入 C# 程式碼,檢查變數、呼叫堆疊。跨語言除錯支援 TDS/HTTP 連線。

常用屬性對照表

屬性對應 SQL 物件
[SqlFunction]純量/資料表值函數
[SqlProcedure]預存程序
[SqlTrigger]觸發器
[SqlUserDefinedType]使用者定義型別
[SqlUserDefinedAggregate]使用者定義彙總

下一步預告

  • CLR 預存程序與觸發器開發。
  • 使用者定義型別 (UDT) 封裝複雜邏輯。
  • 使用者定義彙總 (UDA) 實現自訂統計。
  • 效能調優:SqlChars vs SqlString、Format.Native vs UserDefined。

參考:MSDN SQL Server CLR 指引

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