基本語法
EXEC 預存程序名稱 '字串參數1', '字串參數2', 數值參數;
參數傳遞規則
- EXEC 為關鍵字 (可省略若為批次首句,建議保留)
- 字串參數:單引號括起
'value'
- 數值/日期/位元組等非字串參數:不加單引號,直接輸入
123, GETDATE(), 0xABC
- OUTPUT 參數:宣告變數 →
EXEC proc @param OUTPUT → 讀取變數值
範例
-- 系統預存程序
EXEC sp_configure 'allow updates', 1;
-- 使用者預存程序
EXEC dbo.User_ChangeObjectOwnerBatch 'OldOwner', 'dbo';
-- 一般業務預存程序
DECLARE @Result INT;
EXEC usp_CalculateBonus @EmpID = 1001, @Year = 2023, @Bonus = @Result OUTPUT;
PRINT @Result;
常見錯誤
- 數值參數加單引號 → 隱含轉換失敗或語法錯誤
- 字串參數未加引號 → 視為資料行名稱導致無效物件名稱錯誤
- 參數順序錯誤 → 建議使用
@ParamName = Value 命名式傳遞