SQL Server 2005 - 如何在預存程序中呼叫另外一個預存程序

摘要:SQL Server 2005 - 如何在預存程序中呼叫另外一個預存程序

要在一個預存程序中呼叫另外一個預存程序,可以使用下列兩種方式之一進行呼叫: 

EXECUTE <欲執行之預存程序名稱> 

 

EXEC <欲執行之預存程序名稱 

若被呼叫的欲執行之預存程序名稱擁有傳回值,且您需要接收該傳回值,則在執行該欲執行之預存程序時候,必須使用 OUTPUT 關鍵字來讓被呼叫的預存程序可以接收回傳值。只是您必須先在被呼叫的預存程序中,利用  OUTPUT 關鍵字來加以建立並指定要回傳的數值之資料型別。如下所示即是一例: 

CREATE PROCEDURE #歡迎 @strInput NVARCHAR(50) OUTPUT
AS
  BEGIN
    SET @strInput = @strInput + '
歡迎來到:台北麵攤章立民研究室';
  END;
GO

CREATE PROCEDURE #
您好
AS
  BEGIN
    DECLARE @strHi NVARCHAR(50);
    SET @strHi = '
嗨!您好!';
    EXECUTE #
歡迎 @strHi OUTPUT;
    PRINT @strHi;
  END
GO

--
現在要測試「#您好」這個預存程序是不是可以正確被執行
--
我們使用三種方式進行測試
PRINT '
使用 EXECUTE 陳述式來測試';
EXECUTE #
您好;
PRINT '';
GO

PRINT '
使用 EXEC 陳述式來測試';
EXEC #
您好;
PRINT '';
GO

PRINT '
直接使用 Stored Procedure 名稱來測試看看';
GO
#
您好;
GO

請注意:
這個範例所建立的預存程序是暫時性的,當您所使用的連線與 SQL Server 執行個體中斷之後,這些預存程序就會自動被移除。