-- ============================================= -- Author: -- Create date: -- Description: -- ============================================= CREATE PROCEDURE [dbo].[mfr__updt__appointments] @tblname as nvarchar(50) , @referencetable nvarchar(50) , @tgtid bigint AS BEGIN SET NOCOUNT ON; DECLARE @tmp [dbo].[mfr__tt__appointments]; DECLARE @tmp_cmd nvarchar(1000) = N'SELECT DISTINCT * FROM ' + @tblname INSERT INTO @tmp EXECUTE [sp_executesql] @tmp_cmd; MERGE [dbo].[mfr__appointments] as TARGET USING @tmp as SOURCE ON TARGET.[Id] = SOURCE.[Id] WHEN MATCHED AND (TARGET.[Version] <= SOURCE.[Version] ) THEN UPDATE SET [Id] = SOURCE.[Id] ,[Version] = SOURCE.[Version] ,[State] = SOURCE.[State] ,[Type] = SOURCE.[Type] ,[EndDateTime] = SOURCE.[EndDateTime] ,[StartDateTime] = SOURCE.[StartDateTime] ,[DrivingDistanceFrom] = SOURCE.[DrivingDistanceFrom] ,[DrivingDistanceTo] = SOURCE.[DrivingDistanceTo] ,[WasReadOnClientSide] = SOURCE.[WasReadOnClientSide] ,[ContactIds] = SOURCE.[ContactIds] ,[ServiceRequestId] = SOURCE.[ServiceRequestId] ,[ContactId] = SOURCE.[ContactId] ,[Note] = SOURCE.[Note] WHEN NOT MATCHED BY TARGET THEN INSERT ([Id] ,[Version] ,[State] ,[Type] ,[EndDateTime] ,[StartDateTime] ,[DrivingDistanceFrom] ,[DrivingDistanceTo] ,[WasReadOnClientSide] ,[ContactIds] ,[ServiceRequestId] ,[ContactId] ,[Note]) VALUES (SOURCE.[Id] ,SOURCE.[Version] ,SOURCE.[State] ,SOURCE.[Type] ,SOURCE.[EndDateTime] ,SOURCE.[StartDateTime] ,SOURCE.[DrivingDistanceFrom] ,SOURCE.[DrivingDistanceTo] ,SOURCE.[WasReadOnClientSide] ,SOURCE.[ContactIds] ,SOURCE.[ServiceRequestId] ,SOURCE.[ContactId] ,SOURCE.[Note]); END