Использую SqlExpress 15.0.2080
Нужно после Merge into Добавить данные.
-- Делаем загрузку данных на сервер openJson для примера
MERGE INTO [dbo].[Payments] t
USING (SELECT * FROM OPENJSON('[{"ID":135981,"TimeStamp":"2018-07-10T17:17:34.15","serverId":null}]')
with ([ID] int, [TimeStamp] datetime, [serverId] int)) j ON (t.[ID] = j.[serverId])
WHEN MATCHED THEN update set t.[TimeStamp] = j.[TimeStamp]
WHEN NOT MATCHED THEN INSERT ([TimeStamp]) values (j.[TimeStamp])
output $action, inserted.[ID], j.[ID], null, null;
-- из Merge мы получаем Id, который раньше был у данной строчки и новый Id в базе данных
insert into [dbo].[Sync_TableEntities]([TableName], [CreateTime], [LastUpdateTime], [OrganizationId], [ServerColumnId])
OUTPUT inserted2.Id values('[dbo].[Payments]',
GETDATE(), GETDATE(), '35bcffb3-d804-452a-bd9c-cfa9f5f72c79', inserted.[ID])
-- Нужно загрузить со новым ID в одну таблицу
insert into [dbo].[Sync_EntityClientModels]([TableName], [CreateTime], [LastUpdateTime], [OrganizationId],
[ClientColumnId], [TableEntityId], [ClientId])
values('[dbo].[Payments]', GETDATE(), GETDATE(), '35bcffb3-d804-452a-bd9c-cfa9f5f72c79', j.[ID], inserted2.Id,
'dbf6d576-95bc-46ac-8d08-d13bc5f6123b')
-- И загрузить в другую таблицу со старым ID(из данных) и загрузить ID с предыдущей таблице
И можно ли фильтр сделать у $action на Insert?