USP_MKTSEGMENTLIST_TOGGLEQUERYVIEWS
Toggles whether the list segment query views can be used or not by showing or hiding them wherever query views are used.
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@ID | uniqueidentifier | IN | |
@ISROOTOBJECT | bit | IN | |
@CHANGEAGENTID | uniqueidentifier | IN |
Definition
Copy
CREATE procedure dbo.[USP_MKTSEGMENTLIST_TOGGLEQUERYVIEWS]
(
@ID uniqueidentifier,
@ISROOTOBJECT bit,
@CHANGEAGENTID uniqueidentifier = null
)
as
set nocount on;
declare @QUERYVIEWCATALOGID uniqueidentifier;
declare @QUERYVIEWSPEC xml;
declare @TOGGLE bit;
begin try
select
@QUERYVIEWCATALOGID = [MKTSEGMENTLIST].[QUERYVIEWCATALOGID],
@QUERYVIEWSPEC = [QUERYVIEWCATALOG].[QUERYVIEWSPEC],
@TOGGLE = (case when isnull([QUERYVIEWCATALOG].[ROOTOBJECT],0) = @ISROOTOBJECT then 0 else 1 end)
from dbo.[MKTSEGMENT]
inner join dbo.[MKTSEGMENTLIST] on [MKTSEGMENTLIST].[ID] = [MKTSEGMENT].[CURRENTSEGMENTLISTID]
left join dbo.[QUERYVIEWCATALOG] on [QUERYVIEWCATALOG].[ID] = [MKTSEGMENTLIST].[QUERYVIEWCATALOGID]
where [MKTSEGMENT].[ID] = @ID;
if @QUERYVIEWCATALOGID is not null and @TOGGLE = 1
begin
if @CHANGEAGENTID is null
exec dbo.[USP_CHANGEAGENT_GETORCREATECHANGEAGENT] @CHANGEAGENTID output;
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 sql:variable("@ISROOTOBJECT")');
else
set @QUERYVIEWSPEC.modify(N'declare namespace bbspec="bb_appfx_queryview"; insert attribute IsRoot {sql:variable("@ISROOTOBJECT")} into /bbspec:QueryViewSpec[1]');
update dbo.[QUERYVIEWCATALOG] set
[ROOTOBJECT] = @ISROOTOBJECT,
[QUERYVIEWSPEC] = @QUERYVIEWSPEC,
[CHANGEDBYID] = @CHANGEAGENTID,
[DATECHANGED] = getdate()
where [ID] = @QUERYVIEWCATALOGID;
end
end try
begin catch
exec dbo.[USP_RAISE_ERROR];
return 1;
end catch
return 0;