﻿-- =============================================
-- Author:		<Author,,Name>
-- Create date: <Create Date,,>
-- Description:	<Description,,>
-- =============================================
CREATE PROCEDURE [dbo].[mfr__updt__comments]
	@tblname as nvarchar(50)
	, @referencetable nvarchar(50)
	, @tgtid bigint
AS
BEGIN
	SET NOCOUNT ON;

    DECLARE @tmp [dbo].[mfr__tt__comments];

	DECLARE @tmp_cmd nvarchar(1000) = N'SELECT DISTINCT * FROM ' + @tblname
	INSERT INTO @tmp EXECUTE [sp_executesql] @tmp_cmd;


	MERGE [dbo].[mfr__comments] as TARGET
		USING @tmp as SOURCE ON TARGET.[Id] = SOURCE.[Id]
	WHEN MATCHED AND (TARGET.[Version] <= SOURCE.[Version] OR TARGET.[DateOfCreation] <= SOURCE.[DateOfCreation])  THEN
		UPDATE
			SET [Id] = SOURCE.[Id]
				,[Version] = SOURCE.[Version]
				,[DateOfCreation] = SOURCE.[DateOfCreation]
				,[IsInternal] = SOURCE.[IsInternal]
				,[ServiceRequestId] = SOURCE.[ServiceRequestId]
				,[CompanyId] = SOURCE.[CompanyId]
				,[Content] = SOURCE.[Content]
	WHEN NOT MATCHED BY TARGET THEN
		INSERT
			   ([Id]
				,[Version]
				,[DateOfCreation]
				,[IsInternal]
				,[ServiceRequestId]
				,[CompanyId]
				,[Content])
		 VALUES
			    (SOURCE.[Id]
				,SOURCE.[Version]
				,SOURCE.[DateOfCreation]
				,SOURCE.[IsInternal]
				,SOURCE.[ServiceRequestId]
				,SOURCE.[CompanyId]
				,SOURCE.[Content]);
END