我正在编写一个存储过程来更新事务表。
我将一次更新一种交易类型(发货、收货或处置)
如果我要更新货件,我将传入一个值,而将其他两个留空。
我如何编写一个存储过程,以便它仅在我传入的值不是 NULL(或 0,以更容易者为准)时更新字段,而让其他字段保持原样?
这是我现在的位置:
CREATE PROCEDURE [dbo].[sp_UpdateTransaction]
-- Add the parameters for the stored procedure here
@ID int,
@disposalID int,
@shipID int,
@recID int,
as
begin
update tblX
set
disposalID = COALESCE(@disposalID, disposalID)
receiptID = COALESCE(@recID, receiptID)
shipmentID = COALESCE(@shipID,shipmentID)
where ID = @sID
END
COALESCE
似乎不起作用,因为我不断收到错误,我可以使用另一个功能来实现这一点吗?
我越来越:
“receiptID”附近的语法不正确。
我不明白为什么:(
谢谢!