Добрый день, Throkar,
Предполагая, что я понял ваши потребности (в чем я не совсем уверен), и поскольку вы используете значения жестких кодов, используя (VALUES (1, 'Path 1'), (2, 'Path 2'))
, то, возможно, простое прямое обновление может решитьваши потребности
Поскольку вы не предоставили DDL + DML, я буду использовать базовую демонстрацию
-- Let's assume that this our DDL+DML
drop table if exists tableOperation
GO
CREATE TABLE tableOperation(IdRegister int, Path varchar(100))
INSERT tableOperation(IdRegister) values (2),(4),(5)
select * from tableOperation
GO
--UPDATE d
--SET Path = t.Path
--FROM dbo.tableOperation d
--JOIN (VALUES (1, 'Path 1'),(2, 'Path 2')) t (IdRegister, Path)
-- ON t.IdRegister = d.IdRegist
-- You can use this query
UPDATE dbo.tableOperation
SET Path = CASE
WHEN IdRegister = 1 then 'Path 1'
WHEN IdRegister = 2 then 'Path 2'
END
WHERE IdRegister in (1,2)
В фильтре (условие WHERE) я использую список жестких кодов всех значений, которыеВы использовали условие ON, а в разделе SET я просто использую оператор CASE с жестким кодом условий
Может ли такой подход удовлетворить ваши потребности?