我有以下查詢來生成下一個可用的提單號。
ALTER PROCEDURE [dbo].[GetNextTruckBol]
@FacilityId INT,
@Count INT = 1
AS
BEGIN
SET NOCOUNT ON;
UPDATE Facilities
SET NextTruckBol = NextTruckBol @Count
OUTPUT DELETED.NextTruckBol
WHERE Id = @FacilityId
END
但是現在我需要修改它,以便將結果值分配給一個OUTPUT引數。
我知道如何宣告OUTPUT引數。如何將值分配OUTPUT DELETED.NextTruckBol給該引數?
uj5u.com熱心網友回復:
根據UPDATE檔案
變數名稱可以在 UPDATE 陳述句中使用以顯示受影響的舊值和新值,但這僅應在 UPDATE 陳述句影響單個記錄時使用。如果 UPDATE 陳述句影響多條記錄,要回傳每條記錄的舊值和新值,請使用 OUTPUT 子句。
因此,如果您知道這UPDATE只會影響最多一行(因為Id被限制為唯一的)并且您不想弄亂您可以使用的表變數
SET @variable = column, column = expression,它將變數設定為列的更新前值。
所以那將是
CREATE OR ALTER PROCEDURE [dbo].[GetNextTruckBol]
@FacilityId INT,
@Count INT = 1,
@NextTruckBol INT OUTPUT
AS
BEGIN
SET NOCOUNT ON;
UPDATE Facilities
SET @NextTruckBol = NextTruckBol,
NextTruckBol = NextTruckBol @Count
WHERE Id = @FacilityId
END
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/425377.html
上一篇:如何使這個IsSimilar(varchar,varchar)函式更高效
下一篇:獲取給定日期的最后一個星期三
