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

    DECLARE @tmp [dbo].[mfr__tt__*PartnerSet];

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


	MERGE [dbo].[mfr__*PartnerSet] as TARGET
		USING @tmp as SOURCE ON 
				 TARGET.[Property] = SOURCE.[Property]
				AND TARGET.[PartnerType] = SOURCE.[PartnerType]
				AND TARGET.[PartnerId] = SOURCE.[PartnerId]
				AND TARGET.[EntityId] = SOURCE.[EntityId]
	WHEN MATCHED THEN
		UPDATE
			SET [Property] = SOURCE.[Property]
				,[PartnerType] = SOURCE.[PartnerType]
				,[PartnerId] = SOURCE.[PartnerId]
				,[EntityId] = SOURCE.[EntityId]
	WHEN NOT MATCHED BY TARGET THEN
		INSERT
			   ( [Property]
				,[PartnerType]
				,[PartnerId]
				,[EntityId])
		 VALUES
			    (SOURCE.[Property]
				,SOURCE.[PartnerType]
				,SOURCE.[PartnerId]
				,SOURCE.[EntityId]);
END