Tabulka použitá v reportech

Často se stane, že změníme strukturu databázové tabulky a nevíme, které reporty tím rozbijeme. Následujícím dotazem nad databází report serveru můžeme dohledat reporty, které v příkazu obsahují hledaný text, třeba název tabulky, kterou jsme změnili.

DECLARE @text varchar(250)
SET @text = 'hledany text'

;WITH xmlCatalog AS
(
	SELECT
		 Name
		,Path
		,CONVERT(xml,CONVERT(varbinary(max),content)) AS Content
	FROM ReportServer.dbo.Catalog
	WHERE Type  = 2
)
SELECT 
	name,
	path,
	Query.value('(./*:CommandText/text())[1]','nvarchar(max)') AS CommandText
FROM xmlCatalog
CROSS APPLY xmlCatalog.Content.nodes('//*:Query') Queries(Query)
WHERE Query.value('(./*:CommandText/text())[1]','nvarchar(max)') like '%'+@text+'%'