SQL - Получить имя базы данных из фильтра слитых запросов. - PullRequest
2 голосов
/ 11 марта 2020

Добрый день,

У меня есть рабочий запрос, где я просматриваю все свои базы данных oop и фильтрую, чтобы проверить, какой отчет используется и где. Это работает (см. Ниже)

У меня есть этот рабочий запрос:

SET NOCOUNT ON;

IF OBJECT_ID (N'tempdb.dbo.#temp') IS NOT NULL
   DROP TABLE #temp

CREATE TABLE #temp
(
      ReportPath VARCHAR(500)
      )

declare @SQL nvarchar(max)

set @SQL = STUFF((SELECT '

UNION ALL
' + 'SELECT path FROM ' + quotename(name) + '.dbo.ReportConfig where path like ''%/Standard Reports/Booking/Booked Out by Location%'' and Active = 1'
from sys.Databases 
WHERE name LIKE 'SFB-%' 
FOR XML PATH(''), type).value('.','varchar(max)'),1,15,'')

INSERT #temp
execute(@SQL)

SELECT  ReportPath FROM #temp 

И это дает мне следующий вывод:

enter image description here

Итак, я знаю, что из моих 90 баз данных отчет используется 6 раз, но я не знаю, где.

Поэтому я хочу включить имя базы данных, где этот отчет используется. Я погуглил и попробовал кучу вещей, но я не могу заставить это работать.

Есть идеи?

1 Ответ

2 голосов
/ 11 марта 2020

Просто небольшая настройка того, что у вас уже есть, приведет вас туда

SET NOCOUNT ON;

IF OBJECT_ID (N'tempdb.dbo.#temp') IS NOT NULL
   DROP TABLE #temp

--Add a column to your temp table
CREATE TABLE #temp
(
      DatabaseName varchar(100)
      ,ReportPath VARCHAR(500)
      )

declare @SQL nvarchar(max)

--adjust your dynamic query and add the [name] column as shown below
set @SQL = STUFF((SELECT '

UNION ALL
' + 'SELECT ''' + [name] + ''' as DatabaseName,path FROM ' + quotename(name) + '.dbo.ReportConfig where path like ''%/Standard Reports/Booking/Booked Out by Location%'' and Active = 1'
from sys.Databases 
WHERE name LIKE 'SFB-%' 
FOR XML PATH(''), type).value('.','varchar(max)'),1,15,'')

INSERT #temp
execute(@SQL)

SELECT  DatabaseName, ReportPath FROM #temp 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...