DECLARE @SystemParameters TABLE 
		(
			[InstanceName] [nvarchar](50) NOT NULL,
			[InstanceIdentifier] [nvarchar](50) NOT NULL,
			[ParameterKey] [nvarchar](100) NOT NULL,
			[ParameterDesc] [nvarchar](500) NOT NULL,
			[Value] [nvarchar](max) NOT NULL,
			[DataType] [nvarchar](20) NOT NULL,
			[AllowDelete] [bit] NOT NULL
		);

	INSERT @SystemParameters ([InstanceName], [InstanceIdentifier], [ParameterKey], [ParameterDesc], [Value], [DataType], [AllowDelete]) 
	VALUES ('CareViewBatches', 'default', 'BatchTypeRetrayInervals', 'defines how many minutes the server waits between retries, in Minutes', '[{"BatchType": "Command","RetryTime": "8"}, { "BatchType": "Configuration", "RetryTime": "8" }, { "BatchType": "Rsu", "RetryTime": "8" }, { "BatchType": "CellularModule", "RetryTime": "30" }]', 'System.String',0)
	
	MERGE INTO [dbo].[SystemParameters] AS TARGET
	USING @SystemParameters AS SOURCE
	ON		SOURCE.InstanceName = TARGET.InstanceName AND 
			SOURCE.InstanceIdentifier = TARGET.InstanceIdentifier AND 
			SOURCE.ParameterKey = TARGET.ParameterKey
	WHEN NOT MATCHED BY TARGET THEN
		INSERT (InstanceName,InstanceIdentifier,ParameterKey,ParameterDesc,Value,DataType,AllowDelete)
		VALUES (SOURCE.InstanceName,SOURCE.InstanceIdentifier,SOURCE.ParameterKey,SOURCE.ParameterDesc,SOURCE.Value,SOURCE.DataType,SOURCE.AllowDelete)
	WHEN MATCHED THEN
		UPDATE SET  ParameterDesc = SOURCE.ParameterDesc,
					Value = SOURCE.Value,
					DataType = SOURCE.DataType,
					AllowDelete = SOURCE.AllowDelete
OUTPUT $action, SOURCE.*;
