Вы хотите указать свои параметры, что можно сделать в предложении values()
:
update d
SET nom = v.nom,
val_1 = v.val_1,
val_2 = v.val_2,
val_3 = v.val_3,
val_4 = v.val_4,
val_5 = v.val_5,
decision = v.decision,
somme = (case when d.decision like '%NON%'
then v.val_1 + v.val_2 + v.val_3 + v.val_4 + v.val_5
else 0
end)
from [TP1].[dbo].[Data] d cross join
(values (?, ?, ?, ?, ?, ?, ?)
) v(val_1, val_2, val_3, val_4, val_5, decision, numero)
where d.numero = v.numero;
Вы также можете передать их как именованные параметры.
Вы можетепроще иметь somme
вычисляемый столбец.Тогда это всегда актуально.Вы удалили бы текущее определение, а затем добавили вычисляемый столбец как:
alter table [TP1].[dbo].[Data] add somme as
(case when d.decision like '%NON%'
then val_1 + val_2 + val_3 + val_4 + val_5
else 0
end);