繼托管觸發器後,本文介紹使用 C# 編寫 托管存儲過程。適用場景:抽象與資料庫無關的計算/字符串邏輯、調用 Web Services、OOP 復用、讀取外部文件等。
同觸發器教程:建立 SQL Server Project → 添加 Database Reference。

SPOne.cs。

using System;
using System.Data;
using System.Data.SqlClient;
using System.Data.SqlTypes;
using Microsoft.SqlServer.Server;
public partial class StoredProcedures
{
[Microsoft.SqlServer.Server.SqlProcedure]
public static void SPOne()
{
SqlPipe p = SqlContext.Pipe;
SqlCommand cmd = new SqlCommand();
cmd.CommandText = "SELECT * FROM Person"; // 確保表存在
p.ExecuteAndSend(cmd); // 直接將結果集發送給客戶端
}
}

EXEC SPOne,查看結果集輸出。
托管存儲過程讓開發者脫離 T-SQL 限制,使用 C# 豐富類庫處理複雜邏輯,再將結果高效返回給資料庫客戶端。