共用方式為


預存程序類型

在 MicrosoftSQL Server 中有許多可使用的預存程序類型。此主題簡要描述每個預存程序類型,並提供每個類型的範例。

使用者自訂預存程序

預存程序是封裝程式碼以供重複使用的模組或常式。預存程序可以採用輸入參數、將表格式或純量結果和訊息傳回用戶端、叫用資料定義語言 (DDL) 和資料操作語言 (DML) 陳述式,以及傳回輸出參數。在 SQL Server 2008 中,預存程序有兩種類型:Transact-SQL 或 CLR。

Transact-SQL

Transact-SQL 預存程序是儲存的 Transact-SQL 陳述式集合,可以採用及傳回使用者提供的參數。例如,根據用戶端應用程式提供的資訊,預存程序可能包含將新資料列插入一或多個資料表所需的陳述式。或者,預存程序可能從資料庫將資料傳回用戶端應用程式。例如,電子商務 Web 應用程式可能根據線上使用者指定的搜尋條件,使用預存程序傳回特定產品的資訊。

CLR

CLR 預存程序是 Microsoft.NET Framework Common Language Runtime (CLR) 方法的參考,可以採用並傳回使用者提供的參數。它們會在 .NET Framework 組件中的類別上,當作公開的靜態方法實作。如需詳細資訊,請參閱<CLR 預存程序>。

擴充預存程序

重要注意事項重要事項

未來的 Microsoft SQL Server 版本將移除這項功能。請避免在新的開發工作中使用這項功能,並規劃修改目前使用這項功能的應用程式。 使用<CLR 整合>代替。

擴充預存程序可讓您在 C 這類程式設計語言中,建立自己的外部常式。擴充預存程序是 MicrosoftSQL Server 執行個體可以動態載入和執行的 DLL。擴充預存程序會直接在 SQL Server 執行個體的位址空間中執行,並且使用「SQL Server 擴充預存程序 API」進行程式設計。

[!附註]

CLR 整合會提供更健全及安全的替代方法來撰寫擴充預存程序。

系統預存程序

SQL Server 中的許多管理活動都可透過特殊種類的程序 (稱為系統預存程序) 來執行。例如,sys.sp_changedbowner 就是一種系統預存程序。系統預存程序實際上儲存在 Resource 資料庫中,而且會有 sp_ 前置詞。系統預存程序邏輯上會出現在每個系統自訂和使用者自訂資料庫的 sys 結構描述中。在 SQL Server 2008 中,GRANT、DENY 和 REVOKE 權限都可套用至系統預存程序。如需系統預存程序的完整清單,請參閱<系統預存程序 (Transact-SQL)>。

SQL Server 支援的系統預存程序,可對各種維護活動提供 SQL Server 到外部程式的介面。這些擴充預存程序會使用 xp_ 前置詞。如需擴充預存程序的完整清單,請參閱<一般擴充預存程序 (Transact-SQL)>。

請參閱

概念

其他資源