首頁 > 資料庫 > mysql教程 > 如何在 SQL 程式碼和預存程序之間傳遞值?

如何在 SQL 程式碼和預存程序之間傳遞值?

Linda Hamilton
發布: 2025-01-03 17:41:39
原創
175 人瀏覽過

How Can I Pass Values Between SQL Code and Stored Procedures?

在 SQL 程式碼和預存程序之間傳遞值

使用 SQL 時,有時需要將 exec 呼叫的結果指派給變數。在這種情況下,您希望將 up_GetBusinessDay 的輸出指派給名為 @PreviousBusinessDay 的變數。

直接分配 Exec 結果的限制

雖然將 exec 結果直接分配給變量,SQL 不支援這種方法。原因是 exec 語句用於執行預存程序而不傳回值。因此,您不能直接將執行結果指派給變數。

使用輸出參數

要從預存程序傳回單一值,您可以使用輸出參數。輸出參數可讓您指定一個變數來接收預存程序傳回的值。以下是在 SQL Server中建立和使用輸出參數的方法:

預存程序定義:

CREATE PROCEDURE YourStoredProcedure 
(
    @Param1 int
   ,@Param2 varchar(5)
   ,@Param3 datetime OUTPUT
)
AS
    IF ISNULL(@Param1, 0) > 5
    BEGIN
        SET @Param3 = GETDATE()
    END
    ELSE
    BEGIN
        SET @Param3 = '1/1/2010'
    END
    
    RETURN 0
GO
登入後複製

儲存過程呼叫:

DECLARE @OutputParameter datetime
       ,@ReturnValue     int

EXEC @ReturnValue = YourStoredProcedure 1, NULL, @OutputParameter OUTPUT

PRINT @ReturnValue
PRINT CONVERT(char(23), @OutputParameter, 121)
登入後複製

輸出:

0
2010-01-01 00:00:00.000
登入後複製

透過使用輸出參數,您可以有效地將exec 呼叫的結果指派給變數。當您需要從預存程序中檢索單一值時,通常會使用此技術。

以上是如何在 SQL 程式碼和預存程序之間傳遞值?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板