使用 SQL 時,有時需要將 exec 呼叫的結果指派給變數。在這種情況下,您希望將 up_GetBusinessDay 的輸出指派給名為 @PreviousBusinessDay 的變數。
雖然將 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中文網其他相關文章!