У меня есть несколько разных предметов, которые нужно скопировать в разные организации. Я сделал это с помощью оператора слияния. Я отлично работаю один раз, когда элементы не существуют, но в следующий раз, когда он должен обновлять, он создает новые элементы в каждой организации.Должен ли я сливаться здесь?
merge items as target
using
(
select items.name, items.value, items.org
from Items
) as source
on (target.items.name = source.items.name and
target.items.value = '50')
when matched then
update set target.items.name = source.items.name
when not matched by target then
Insert(...)
Values(...);
Я предполагаю, что есть что-то TODO с этим условием это не распространяется право в следующий раз либо и новые элементы, создает, но я не понимаю, почему ..
Может подмигнули лучше просто сделать простой вставить?
Если ваше условие содержит 'target.items.name = source.items.name', не имеет смысла обновлять имя цели при согласовании. –
В таблице есть разные строки, которые необходимо обновить другими строками. Элементы из одной организации должны обновлять элементы в другой организации. –
Мне не ясно, из вашего описания или вашего нерабочего кода, что вы хотите выполнить. Если у вас есть простая вставка, которая действительно работает, возможно, вы можете использовать ее в своем вопросе? – hvd