Существует свойство набора данных RDL, называемое "noRows", которое может отображать пользовательское сообщение, если в наборе данных не возвращено ни одной строки.Он по-прежнему будет отправлять пустой отчет, только со специальным сообщением.
Если вы хотите, чтобы подписка не запускала отчет, то единственный способ, который я знаю, - это проверить количество строк в списке выбора.оператор, если ваша хранимая процедура и выдать ошибку, если количество строк равно нулю.Не элегантный способ справиться с этим, но он не отправит отчет, потому что ошибка происходит на стороне T-SQL и SSRS не сможет отобразить отчет.
declare @rows int
select @rows = -1
<select statement here>
select @rows = @@rowcount
if ( @rows < 1 )
begin
RAISERROR ('no rows returned', 11, 1 );
end