Я держу под таблицами синхронно.проблемы с синхронизацией, некоторые столбцы не обновляются
От источника к DW, я:
SELECT @UpdateDate = MAX(UpdateDate)
FROM [ReplicatedVS3].[dbo].[Payment]
SELECT * INTO #temp
FROM [LinkedServer].[SF].[dbo].[Payment]
WHERE UpdateDate >= @UpdateDate
DELETE FROM [ReplicatedVS3].[dbo].[Payment]
FROM [ReplicatedVS3].[dbo].[Payment] AS A
INNER JOIN #temp AS t
ON A.Payment_id = t.Payment_id
INSERT INTO [ReplicatedVS3].[dbo].[Payment] SELECT * FROM #temp
Отлично! У меня никогда не было никаких проблем с этим.
Тогда другой перевод я в тот же SQL, например этот раз:
SELECT @LastUpdateDate = MAX(UpdateDate)
FROM [BS].[dbo].[Salesforce_Payment]
insert @PaymentsVS3
select (columns…)
from [ReplicatedVS3].[dbo].[Payment]
where UpdateDate >= @LastUpdateDate
merge [BS].[dbo].[Salesforce_Payment] as TARGET
using (
select (columns…)
from @PaymentsVS3
)
as SOURCE
on (TARGET.Payment_id = SOURCE.Payment_id)
я нашел проблемы; счет всегда идеален ... но некоторые столбцы не обновляются, например, в ReplicatedVS3. Я вижу статус = «завершен», а в BS я вижу другой ... Так что это означает, что с кодом слияния что-то не так ... Но , когда я запускаю его вручную и я:
insert @PaymentsVS3
select (columns…)
from [ReplicatedVS3].[dbo].[Payment]
where id = xxxx
он обновляется должным образом, так что слияние работает идеально ... Единственная возможная причина, в настоящее время является то, что я не поймать запись в этом немного:
insert @PaymentsVS3
select (columns…)
from [ReplicatedVS3].[dbo].[Payment]
where UpdateDate >= @LastUpdateDate
Как устранить эту проблему и точно знать, почему я вижу столбцы, которые не обновляются.