USP_MKTSEGMENTLIST_CREATEIDSETVIEW
Creates a view on the records from a list segment.
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@SEGMENTLISTID | uniqueidentifier | IN | |
@ISDUPLICATE | bit | IN |
Definition
Copy
CREATE procedure dbo.[USP_MKTSEGMENTLIST_CREATEIDSETVIEW]
(
@SEGMENTLISTID uniqueidentifier,
@ISDUPLICATE bit
)
with execute as owner
as
set nocount on;
declare @VIEWNAME nvarchar(128);
declare @SQL nvarchar(max);
declare @MINIMUMDATAID uniqueidentifier;
declare @MAXIMUMDATAID uniqueidentifier;
begin try
select
@MINIMUMDATAID = [MINIMUMDATAID],
@MAXIMUMDATAID = [MAXIMUMDATAID],
@VIEWNAME = dbo.[UFN_MKTSEGMENTLIST_MAKEVIEWNAME_FORIDSET]([ID], @ISDUPLICATE),
@SQL = ''
from dbo.[MKTSEGMENTLIST]
where [ID] = @SEGMENTLISTID;
if @MINIMUMDATAID is null or @MAXIMUMDATAID is null
--This is for backwards compatibility for lists that don't have sequential data IDs. This sql comment is
--important because USP_MKTSEGMENTLIST_DELETEIMPORTDATA looks for this comment for upgraded lists.
set @SQL = '/*##LIST UPGRADE## - DO NOT REMOVE OR MODIFY*/' + char(13);
if exists(select 1 from INFORMATION_SCHEMA.VIEWS where [TABLE_SCHEMA] = 'dbo' and [TABLE_NAME] = @VIEWNAME)
set @SQL = @SQL + 'alter';
else
set @SQL = @SQL + 'create';
--Create the view...
set @SQL = @SQL + ' view dbo.[' + @VIEWNAME + ']' + char(13) +
'as' + char(13) +
' select [ID]' + char(13) +
' from dbo.[MKTSEGMENTLISTDATA]' + char(13);
if @MINIMUMDATAID is not null and @MAXIMUMDATAID is not null
--Always use the clustered index when querying this table because the IDs are sequential and this will be faster...
set @SQL = @SQL + ' where [ID] between ''' + cast(@MINIMUMDATAID as nvarchar(36)) + ''' and ''' + cast(@MAXIMUMDATAID as nvarchar(36)) + '''' + char(13);
else
--This is for backwards compatibility for lists that don't have sequential data IDs...
set @SQL = @SQL + ' where [SEGMENTLISTID] = ''' + cast(@SEGMENTLISTID as nvarchar(36)) + '''' + char(13);
set @SQL = @SQL + ' and [ISDUPLICATE] = ' + cast(@ISDUPLICATE as nvarchar(1));
exec (@SQL);
--Grant select rights on the view...
exec ('grant select on dbo.[' + @VIEWNAME + '] to BBAPPFXSERVICEROLE');
end try
begin catch
exec dbo.[USP_RAISE_ERROR];
return 1;
end catch
return 0;