USP_DATAFORMTEMPLATE_VIEW_SEGMENTATIONSEGMENTCOPYDUPLICATECHECK
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@ID | nvarchar(73) | IN | |
@DATALOADED | bit | INOUT | |
@SOURCEEFFORTNAME | nvarchar(100) | INOUT | |
@TARGETEFFORTNAME | nvarchar(100) | INOUT | |
@TOTALSOURCESEGMENTS | int | INOUT | |
@TOTALDUPLICATESEGMENTS | int | INOUT | |
@DUPLICATENAMESLIST | nvarchar(max) | INOUT |
Definition
Copy
create procedure dbo.[USP_DATAFORMTEMPLATE_VIEW_SEGMENTATIONSEGMENTCOPYDUPLICATECHECK]
(
@ID nvarchar(73), --source | target
@DATALOADED bit = 0 output,
@SOURCEEFFORTNAME nvarchar(100) = null output,
@TARGETEFFORTNAME nvarchar(100) = null output,
@TOTALSOURCESEGMENTS int = null output,
@TOTALDUPLICATESEGMENTS int = null output,
@DUPLICATENAMESLIST nvarchar(max) = null output
)
as
set nocount on;
-- be sure to set this, in case the select returns no rows
set @DATALOADED = 0;
-- extract IDs
declare @SOURCEEFFORTID as uniqueidentifier = convert(uniqueidentifier, substring(@ID, 1, charindex('|', @ID, 1) - 1));
declare @TARGETEFFORTID as uniqueidentifier = convert(uniqueidentifier, substring(@ID, charindex('|', @ID, 1) + 1, len(@ID)));
with [SOURCEEFFORTSEGMENTS_CTE] as (
select
[MKTSEGMENTATIONSEGMENT].[SEGMENTID],
[MKTSEGMENTATIONSEGMENT].[PACKAGEID],
[MKTSEGMENTATIONSEGMENT].[SEQUENCE]
from
dbo.[MKTSEGMENTATIONSEGMENT]
where
[MKTSEGMENTATIONSEGMENT].[SEGMENTATIONID] = @SOURCEEFFORTID
),
[DUPLICATESEGMENTS_CTE] as (
select
[MKTSEGMENTATIONSEGMENT].[PACKAGEID],
[MKTSEGMENTATIONSEGMENT].[SEGMENTID],
[MKTSEGMENT].[NAME],
[SOURCEEFFORTSEGMENTS_CTE].[SEQUENCE]
from
dbo.[MKTSEGMENTATIONSEGMENT]
inner join [SOURCEEFFORTSEGMENTS_CTE] on [SOURCEEFFORTSEGMENTS_CTE].[PACKAGEID] = [MKTSEGMENTATIONSEGMENT].[PACKAGEID] and [SOURCEEFFORTSEGMENTS_CTE].[SEGMENTID] = [MKTSEGMENTATIONSEGMENT].[SEGMENTID]
inner join dbo.[MKTSEGMENT] on [MKTSEGMENT].[ID] = [MKTSEGMENTATIONSEGMENT].[SEGMENTID]
where
[MKTSEGMENTATIONSEGMENT].[SEGMENTATIONID] = @TARGETEFFORTID
)
select
@DATALOADED = 1,
@SOURCEEFFORTNAME = (select [NAME] from dbo.[MKTSEGMENTATION] where [ID] = @SOURCEEFFORTID),
@TARGETEFFORTNAME = (select [NAME] from dbo.[MKTSEGMENTATION] where [ID] = @TARGETEFFORTID),
@TOTALSOURCESEGMENTS = (select count(1) from [SOURCEEFFORTSEGMENTS_CTE]),
@TOTALDUPLICATESEGMENTS = (select count(1) from [DUPLICATESEGMENTS_CTE]),
@DUPLICATENAMESLIST = stuff((select top 5 char(13) + [DUPLICATESEGMENTS_CTE].[NAME] from [DUPLICATESEGMENTS_CTE] order by [DUPLICATESEGMENTS_CTE].[SEQUENCE] asc for xml path(''), type).value('.', 'varchar(max)'), 1, 1, '');
return 0;