| 類型 | 說明 | 接收方式 |
| RETURN | 回傳整數狀態碼 | 批次變數接收 |
| OUTPUT 參數 | 回傳任意型別值 | 批次變數接收 |
| Recordset | 回傳查詢結果集 | 用戶端接收 |
實戰範例 1:查詢書籍表
CREATE PROC query_book
AS
SELECT * FROM book
GO
EXEC query_book
實戰範例 2:新增書籍並回傳總金額
CREATE PROC insert_book
@param1 CHAR(10), @param2 VARCHAR(20), @param3 MONEY, @param4 MONEY OUTPUT
WITH ENCRYPTION
AS
INSERT INTO book(編號, 書名, 價格) VALUES (@param1, @param2, @param3)
SELECT @param4 = SUM(價格) FROM book
GO
-- 執行範例
DECLARE @total_price MONEY
EXEC insert_book '003', 'Delphi 控件開發指南', 100, @total_price OUTPUT
PRINT '總金額為 ' + CONVERT(VARCHAR, @total_price)
實戰範例 3:跨表聯結建立暫存表
CREATE PROC temp_sale
AS
SELECT a.產品編號, a.產品名稱, b.客戶名, b.客戶訂金,
a.客戶訂數 * b.客戶訂金 AS 總金額
INTO #temptable
FROM Product a INNER JOIN [Order] b ON a.產品編號 = b.產品編號
IF @@ERROR = 0 PRINT 'Good' ELSE PRINT 'Fail'
GO
關鍵觀念
- 暫存表
#temptable 僅存在於目前 Session,程序結束自動清除
- 善用
@@ERROR 捕捉執行狀態
- 加密與重新編譯選項依安全與效能需求啟用
掌握以上範例,即能獨立撰寫具備參數傳遞、錯誤處理與資料加工能力的預存程序。
- 上一篇文章: ASP 呼叫帶參數預存程序的三種實戰模式
- 下一篇文章: 預存程序核心觀念:定義、優勢、類型與標準語法一次掌握
Copyright ©
程式碼之家 All Rights Reserved