在預存程序中呼叫另一個預存程序,可使用 EXECUTE 或 EXEC。若被呼叫程序有輸出參數(需以 OUTPUT 關鍵字宣告),呼叫端必須在執行時加上 OUTPUT 才能接收回傳值。本文提供完整範例展示建立、呼叫與測試流程。
-- 被呼叫程序:接收輸入字串並附加歡迎訊息回傳
CREATE PROCEDURE #歡迎 @strInput NVARCHAR(50) OUTPUT
AS BEGIN SET @strInput = @strInput + N'歡迎來到:台北麵攤—章立民研究室'; END;
GO
-- 呼叫端:宣告變數、設定初值、呼叫並列印結果
CREATE PROCEDURE #您好
AS BEGIN
DECLARE @strHi NVARCHAR(50); SET @strHi = N'嗨!您好!';
EXECUTE #歡迎 @strHi OUTPUT;
PRINT @strHi;
END;
GO
-- 測試三種呼叫方式
PRINT '使用 EXECUTE'; EXECUTE #您好;
PRINT '使用 EXEC'; EXEC #您好;
PRINT '直接用名稱'; #您好;
# 前綴),連線中斷後自動移除。OUTPUT。EXECUTE、EXEC、直接呼叫名稱三種語法效果相同。