存储程序

-{zh-cn:存储过程; zh-tw:預存程序;}-，又稱儲存程序（），是在資料庫儲存複雜程序，以便外部程式呼叫的資料庫物件，可以視為資料庫的一種函數或子程序。

優缺點

優點
預存程序具有下列的好處：
 預存程序可封裝，並隱藏複雜的商業邏輯。
 預存程序可以回傳值，並可以接受參數。
 預存程序無法使用 SELECT 指令執行，因為它是子程序，與檢視表、資料表或使用者定義函數不同。
 預存程序可以用在資料檢驗，強制實行商業邏輯等。

缺點
預存程序，往往客製化於特定的資料庫上，因為支援的程式語言不同。當切換到其他廠商的資料庫系統時，需要重寫原有的預存程序。
預存程序的效能調校與撰寫，受限於各種資料庫系統。

支援預存程序的資料庫

範例 

預存程序是資料庫物件之一，必須使用資料定義語言來建立，例如：
以下範例，以Microsoft的SQL Server所以採用的T-SQL語法表示。
CREATE PROCEDURE usp_AddProduct
(
   @Barcode varchar(13),
   @Caption nvarchar(50)
)
AS
BEGIN

   IF LEN(@Barcode) < 13 
      RAISERROR('Barcode length is too short.')

   INSERT INTO MyProducts (Barcode, Caption) VALUES (@Barcode, @Caption)

END

外部程序需要使用 EXECUTE 或 CALL 來呼叫預存程序。

EXEC usp_AddProduct '2293891100011', 'MyProductCaption'

数据库管理系统
计算机编程