Выполните подписку на основе данных отчетов с помощью T-SQL

#reporting-services

Вопрос:

Я пытаюсь использовать задание агента SQL, созданное подпиской SSRS на основе данных, для создания отчета. Другое приложение использует хранимую процедуру для вставки данных. Я хотел бы создать отчет сразу после вставки данных, изменив эту хранимую процедуру для выполнения агента SQL Server. Мой код выглядит следующим образом:

 USE msdb EXEC sp_start_job @job_name = 'F2B1...'
 

Этот подход отлично работает, когда задание агента выполняется по стандартной подписке. При описании, основанном на данных, значение столбца LastStatus долгое время «ожидает», а затем изменяется на «Готово: 1 обработано из 1 всего; 1 ошибка». Я не вижу ошибки в журнале ошибок агента SQL.

Есть ли способ сделать что-то подобное? Если да, могу ли я передать параметры в отчет или он все еще выполняет запрос, определенный в подписке, управляемой данными?

Спасибо!

Комментарии:

1. Посмотрите в журналах сервера отчетов, в чем заключается ошибка. Подписки, управляемые данными, не позволяют передавать ему параметры.. к сожалению. Один из обходных путей-создать таблицу, в которую можно загружать значения, и использовать эти значения в запросе набора данных для подписки, управляемой данными

2. Спасибо! Ошибка заключалась просто в том, что мне не хватало некоторых параметров.

Ответ №1:

Вы также можете начать подписку по идентификатору подписки.

 EXEC dbo.AddEvent @EventType = 'TimedSubscription', @EventData = '<YOUR SUBSCRIPTION ID HERE>'
 

Где параметр Данных о событии-это идентификатор подписки на подписку вашего отчета.

введите описание изображения здесь

Хотя на самом деле я никогда раньше не пробовал это с подпиской, управляемой данными.