再延伸到編寫Stored Procedure時,遇到需要多個回傳值的處理方式!
--範例如下 CREATE PROCEDURE [dbo].[SP_TEST] (@xGPNo varchar(2),@xDTNo varchar(3),@xRGPNa Nvarchar(20) OUTPUT,@xRDTNa Nvarchar(50) OUTPUT)--設定傳入值格式 AS BEGIN DECLARE @xSQL Nvarchar(MAX)--存放動態語法 DECLARE @xGPNa Nvarchar(20)--接收回傳值 DECLARE @xDTNa Nvarchar(50)--接收回傳值 DECLARE @xStatemen nvarChar(MAX)--sp_executesql 參數 --參數設定順序需與語法一致 SET @xStatemen = '@xGPNa Nvarchar(20) OUT,@xDTNa Nvarchar(50) OUT,@xGPNo varchar(2),@xDTNo varchar(3)' --查詢語法 SET @xSQL = 'select @xGPNa=GPNa,@xDTNa=DTNa '+ ' from NOM '+ ' where GPNo='+Quotename(@xGPNo,'''')+ ' and DTNo='+Quotename(@xDTNo,'''') --語法、參數、回傳值及相關變數 EXEC sp_executesql @xSQL,@xStatemen,@xGPNa OUT,@xDTNa OUT,@xGPNo,@xDTNo SET @xRGPNa=@xGPNa SET @xRDTNa=@xDTNa END
--執行 DECLARE @xRGPNa Nvarchar(20) DECLARE @xRDTNa Nvarchar(50) EXEC dbo.SP_TEST 'SO','B01',@xRGPNa OUTPUT,@xRDTNa OUTPUT select @xRGPNa+'-'+@xRDTNa ----------------------------------------------------------------------- 成品出入庫類別-銷貨出庫 (1 個資料列受到影響)參考自:
MSDN-CREATE PROCEDURE
walter 心得筆記-[SQL Server] 如何接收 Store Procedure 的傳回值
沒有留言:
張貼留言