USP_MKTSEGMENTLIST_HIDEPREVIOUSQUERYVIEWS
Hides all the previous list segment query views during a list segment reimport process.
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@SEGMENTID | uniqueidentifier | IN | |
@CHANGEAGENTID | uniqueidentifier | IN |
Definition
Copy
create procedure dbo.[USP_MKTSEGMENTLIST_HIDEPREVIOUSQUERYVIEWS]
(
@SEGMENTID uniqueidentifier,
@CHANGEAGENTID uniqueidentifier = null
)
as
set nocount on;
declare @QUERYVIEWCATALOGID uniqueidentifier;
declare @QUERYVIEWSPEC xml;
declare @CURRENTDATE datetime;
begin try
if @CHANGEAGENTID is null
exec dbo.[USP_CHANGEAGENT_GETORCREATECHANGEAGENT] @CHANGEAGENTID output;
set @CURRENTDATE = getdate();
declare QVCURSOR cursor local fast_forward for
select
[MKTSEGMENTLIST].[QUERYVIEWCATALOGID],
[QUERYVIEWCATALOG].[QUERYVIEWSPEC]
from dbo.[MKTSEGMENT]
inner join dbo.[MKTSEGMENTLIST] on [MKTSEGMENTLIST].[SEGMENTID] = [MKTSEGMENT].[ID]
left join dbo.[QUERYVIEWCATALOG] on [QUERYVIEWCATALOG].[ID] = [MKTSEGMENTLIST].[QUERYVIEWCATALOGID]
where [MKTSEGMENT].[ID] = @SEGMENTID
and [MKTSEGMENT].[CURRENTSEGMENTLISTID] <> [MKTSEGMENTLIST].[ID]
and [MKTSEGMENTLIST].[QUERYVIEWCATALOGID] is not null
and [QUERYVIEWCATALOG].[ROOTOBJECT] = 1;
open QVCURSOR;
fetch next from QVCURSOR into @QUERYVIEWCATALOGID, @QUERYVIEWSPEC;
while (@@FETCH_STATUS = 0)
begin
if @QUERYVIEWSPEC.exist(N'declare namespace bbspec="bb_appfx_queryview"; /bbspec:QueryViewSpec[1]/@IsRoot') = 1
set @QUERYVIEWSPEC.modify(N'declare namespace bbspec="bb_appfx_queryview"; replace value of /bbspec:QueryViewSpec[1]/@IsRoot with "false"');
else
set @QUERYVIEWSPEC.modify(N'declare namespace bbspec="bb_appfx_queryview"; insert attribute IsRoot {"false"} into /bbspec:QueryViewSpec[1]');
update dbo.[QUERYVIEWCATALOG] set
[ROOTOBJECT] = 0,
[QUERYVIEWSPEC] = @QUERYVIEWSPEC,
[CHANGEDBYID] = @CHANGEAGENTID,
[DATECHANGED] = @CURRENTDATE
where [ID] = @QUERYVIEWCATALOGID;
fetch next from QVCURSOR into @QUERYVIEWCATALOGID, @QUERYVIEWSPEC;
end
close QVCURSOR;
deallocate QVCURSOR;
end try
begin catch
exec dbo.[USP_RAISE_ERROR];
return 1;
end catch
return 0;