USP_MKTSEGMENTATIONDATAEXCLUSION_POPULATETABLE
Populates the marketing effort data exclusion table.
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@SEGMENTATIONEXCLUSIONID | uniqueidentifier | IN | |
@UPDATEMAILINGCOUNTSPROCESSID | uniqueidentifier | IN | |
@IMPORTTABLENAME | nvarchar(128) | IN |
Definition
Copy
CREATE procedure dbo.[USP_MKTSEGMENTATIONDATAEXCLUSION_POPULATETABLE]
(
@SEGMENTATIONEXCLUSIONID uniqueidentifier,
@UPDATEMAILINGCOUNTSPROCESSID uniqueidentifier,
@IMPORTTABLENAME nvarchar(128)
)
as
set nocount on;
declare @DATATABLENAME nvarchar(128);
declare @EXCLUSIONTABLENAME nvarchar(128);
select
@DATATABLENAME = dbo.[UFN_MKTSEGMENTATIONACTIVATE_MAKETABLENAME]([SEGMENTATIONID]),
@EXCLUSIONTABLENAME = dbo.[UFN_MKTSEGMENTATIONACTIVATEEXCLUSION_MAKETABLENAME]([SEGMENTATIONID])
from dbo.[MKTUPDATEMAILINGCOUNTSPROCESS]
where [ID] = @UPDATEMAILINGCOUNTSPROCESSID;
declare @SQL nvarchar(max);
declare @COLUMNSQL nvarchar(max) = '[SEGMENTATIONEXCLUSIONID]';
declare @VALUESSQL nvarchar(max) = '@SEGMENTATIONEXCLUSIONID';
declare @COLUMNNAME nvarchar(128);
declare @COLUMNCURSOR cursor;
set @SQL = 'set @COLUMNCURSOR = cursor local fast_forward for' + char(13) +
' select [COLUMN_NAME]' + char(13) +
' from INFORMATION_SCHEMA.COLUMNS' + char(13) +
' where ([TABLE_SCHEMA] = ''dbo'') and ([TABLE_NAME] = ''' + @DATATABLENAME + ''');' + char(13) +
'open @COLUMNCURSOR;';
exec sp_executesql @SQL, N'@COLUMNCURSOR cursor output', @COLUMNCURSOR = @COLUMNCURSOR output;
fetch next from @COLUMNCURSOR into @COLUMNNAME;
while @@FETCH_STATUS = 0
begin
set @COLUMNSQL += ', [' + @COLUMNNAME + ']';
set @VALUESSQL += ', [DATA].[' + @COLUMNNAME + ']';
fetch next from @COLUMNCURSOR into @COLUMNNAME;
end
close @COLUMNCURSOR;
deallocate @COLUMNCURSOR;
set @SQL = 'insert into dbo.[' + @EXCLUSIONTABLENAME + '] (' + @COLUMNSQL + ')' + char(13) +
' select ' + @VALUESSQL + char(13) +
' from dbo.[' + @DATATABLENAME + '] as [DATA]' + char(13) +
' inner join dbo.[' + @IMPORTTABLENAME + '] as [IMPORT] on [DATA].[FINDERNUMBER] = [IMPORT].[FINDERNUMBER]' + char(13) +
' where [IMPORT].[EXCEPTIONCODE] = 0;';
exec sp_executesql @SQL, N'@SEGMENTATIONEXCLUSIONID uniqueidentifier', @SEGMENTATIONEXCLUSIONID = @SEGMENTATIONEXCLUSIONID;
return 0;