Обновить общий путь к источнику данных всех отчетов SSRS для разных путей
Я работаю над SSRS
Report.
Недавно я изменил местоположение папки всех отчетов SSRS
на другой путь. Также мне нужно изменить путь к источнику данных. (Поскольку я переместил отчеты снова, мне нужно установить Datasource), поэтому я не могу его вручную, перейдя в « Manage
.
Но существует ли какой-либо способ быстрого доступа к источнику данных для всех отчетов SSRS
?
- Диспетчер отчетов SSRS + выглядит странно
- Отладка отчета не работает, показывая сообщение об ошибке «Убедитесь, что предоставлены достаточные разрешения» Как решить эту проблему?
- Динамические параметры SSRS, прошедшие через заголовок страницы
- Результат SSRS отличается от результата SSMS тем же запросом
- Отправить отчет SSRS по электронной почте
- Конструктор отчетов SSRS 2012 не запускается с удаленного хоста - 401 Несанкционированный
- Несколько отчетов в SSRS с использованием той же хранимой процедуры
- Форматирование ячеек матрицы SSRS
- Создатель отчетов SSRS, как скрыть конкретное текстовое поле, экспортирующее в Excel
- SSRS Subreport выполняется несколько раз, я хочу, чтобы он выполнялся один раз
- Добавление функции «Предыдущий и следующий месяц» в календарь
- sp_send_dbmail вставить файл mhtml в тело
- Как установить описание папки во время развертывания с помощью Visual Studio?
Наконец, я нашел решение и сделал свой день.
Я потратил 5 часов на то, чтобы найти решение.
Чтобы обновить общий путь к Datasource
Datasource
– необходимо обновить таблицу Datasource
Report Server
.
SELECT cLog.Path,dSource.name FROM DataSource AS dSource JOIN CATALOG AS cLog ON cLog.ItemID = dSource.ItemID WHERE dSource.flags = dSource.flags AND dSource.Link IS NULL AND dSource.ConnectionString IS NULL AND dSource.NAME = 'NameofDatasource' AND cLog.path LIKE '%foldername%' ORDER BY PATH
Он покажет все отчеты, у которых нет строки подключения. Итак, теперь вы должны обновить свой [Link]
.
Примечание. Чтобы получить последние [Link]
– вам нужно настроить один из отчетов, вручную настроив путь Datasource
и выполнив ниже запрос, это предоставит вам последнюю [Link]
.
SELECT ds.Link FROM DataSource AS ds JOIN CATALOG AS c ON c.ItemID = ds.ItemID WHERE ds.NAME = 'NameofDatasource' AND c.path LIKE '%foldername%' AND ds.Link IS NOT NULL
Теперь остается только обновить его тем же предложением where. Поэтому он будет обновлять последние [Link]
ко всем отчетам.
UPDATE dSource set [Flags] = [Flags] | 2, [Link] = 'PutLatestLink' FROM DataSource AS dSource JOIN CATALOG AS cLog ON cLog.ItemID = dSource.ItemID WHERE dSource.flags = dSource.flags AND dSource.Link IS NULL AND dSource.ConnectionString IS NULL AND dSource.NAME = 'NameofDatasource' AND cLog.path LIKE '%foldername%'
Примечание. Будьте внимательны, если вы выполняете этот запрос непосредственно на реальном сервере. Впервые попробуйте обновить только один конкретный отчет с указанным выше запросом, а затем сделать для других, если он действительно нужен и работал нормально.
Вы можете использовать утилиты RS.exe или ReportSync для перемещения отчетов и источников данных.
Также вы можете обновить таблицу Catalog
из базы данных ReportServer с помощью сценария T-SQL.
Используйте этот запрос, чтобы изучить путь к источникам данных.
SELECT a.Name, b.Path FROM DataSource a INNER JOIN Catalog b ON a.ItemID = b.ItemID
ОБНОВЛЯЙТЕ path
для источников данных для указания пути отчета. Обратите внимание, что он будет работать, если DataSource не является общим источником данных, развернутым в определенной папке.
UPDATE b SET b.Path = '<your_path>' FROM DataSource a INNER JOIN Catalog b ON a.ItemID = b.ItemID WHERE a.Name IN ('Datasource1', 'Datasource2')
Я не уверен в этом, так как не могу попробовать в этот момент, поэтому рекомендую использовать принятые инструменты миграции RS.exe или ReportSync .
Дайте мне знать, если это вам поможет.