Я пишу хранимую процедуру для обновления таблицы транзакций.
Я буду обновлять один тип транзакции за раз (отгрузка, получение или утилизация)
Если я обновляю груз, я передам значение и оставлю два других пустыми.
Как я могу написать хранимую процедуру, чтобы она обновляла поле только тогда, когда значение, которое я передаю, не равно 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
, похоже, не работает, так как я получаю ошибки, есть ли другая функция, которую я могу использовать, чтобы это произошло?
Я получаю:
Неверный синтаксис рядом с «квитанцией».
Не понимаю, почему: (
Спасибо!