USP_RECOGNITIONPROGRAM_RECREATEQUERY
Parameters
Parameter | Parameter Type | Mode | Description |
---|---|---|---|
@RECOGNITIONPROGRAMID | uniqueidentifier | IN | |
@CHANGEAGENTID | uniqueidentifier | IN |
Definition
Copy
create procedure dbo.USP_RECOGNITIONPROGRAM_RECREATEQUERY
(
@RECOGNITIONPROGRAMID uniqueidentifier = null,
@CHANGEAGENTID uniqueidentifier = null
)
as
begin try
if @CHANGEAGENTID is null
exec dbo.USP_CHANGEAGENT_GETORCREATECHANGEAGENT @CHANGEAGENTID output;
declare @TEMPLATESQL nvarchar(max);
select
@TEMPLATESQL = T.c.value('(text())[1]','nvarchar(max)')
from
dbo.QUERYVIEWCATALOG
cross apply
QUERYVIEWCATALOG.QUERYVIEWSPEC.nodes('declare default element namespace "bb_appfx_queryview";/QueryViewSpec/ViewImplementation/ViewSQL') T(c)
where
ID = '1F975D0A-DD74-4A4B-88F0-8A515679E845' -- Template query view
declare RECOGNITIONPROGRAMCURSOR cursor local fast_forward for
select
RECOGNITIONPROGRAM.ID,
QUERYVIEWCATALOG.ID,
QUERYVIEWCATALOG.QUERYVIEWSPEC
from
dbo.RECOGNITIONPROGRAM
inner join
dbo.QUERYVIEWCATALOG on QUERYVIEWCATALOG.OBJECTNAME = 'V_QUERY_RECOGNITION_' + upper(REPLACE(CONVERT(nvarchar(36), RECOGNITIONPROGRAM.ID), '-', ''))
where
@RECOGNITIONPROGRAMID is null or RECOGNITIONPROGRAM.ID = @RECOGNITIONPROGRAMID;
declare @QUERYVIEWCATALOGID uniqueidentifier, @QUERYVIEWSPEC xml;
open RECOGNITIONPROGRAMCURSOR;
fetch next from RECOGNITIONPROGRAMCURSOR into @RECOGNITIONPROGRAMID, @QUERYVIEWCATALOGID, @QUERYVIEWSPEC;
while @@FETCH_STATUS = 0
begin
declare @RECOGNITIONPROGRAMSQL nvarchar(max) = replace(@TEMPLATESQL, '/*WHERECLAUSE*/', ' where CR.RECOGNITIONPROGRAMID = ''' + convert(nvarchar(36), @RECOGNITIONPROGRAMID) + '''')
set @QUERYVIEWSPEC.modify('declare default element namespace "bb_appfx_queryview";
replace value of (/QueryViewSpec/ViewImplementation/ViewSQL/text())[1] with sql:variable("@RECOGNITIONPROGRAMSQL")')
exec dbo.USP_LOADSPEC @QUERYVIEWSPEC, @CHANGEAGENTID;
fetch next from RECOGNITIONPROGRAMCURSOR into @RECOGNITIONPROGRAMID, @QUERYVIEWCATALOGID, @QUERYVIEWSPEC;
end
close RECOGNITIONPROGRAMCURSOR;
deallocate RECOGNITIONPROGRAMCURSOR;
end try
begin catch
exec dbo.USP_RAISE_ERROR;
return 1;
end catch