Я пытаюсь обновить подписку на отчет с помощью задачи SQL, запущенной в службах SSIS (в которой различные параметры передаются через более ранний сценарий).
Я нашел некоторую документацию по этому вопросу и могудаже получить параметры для изменения в записи, но когда я на самом деле запускаю задание вывода, оно говорит, что оно работает, но ничего не выводится, даже если я заменяю его на идентичные значения.
Я подозреваю, что проблема заключается в ошибке форматирования длядовольно случайная причина.Я вставил запись xml (которую сервер отчетов хранит в виде ntext) на вкладку кода XML VS.Перед тем, как я отредактирую запись, она будет выводиться в одну строку, и я буду вынужден отформатировать ее, после того, как я выполню обновление, она автоматически форматируется, когда я вставляю в ту же вкладку.Если я удаляю обновление (просто переписав отчет через пользовательский интерфейс), я возвращаюсь к вставке копии в одну строку
Я перепрыгнул через несколько обручей на этом.Хотя большая часть документации, которую я нашел, похоже, подразумевает, что я могу просто обновить поле в обычном режиме (Set blah = 'thing'), но если я это сделаю, оно просто сломается (буквально говорит, что формат XML неверен, если я поднимаюподписка в пользовательском интерфейсе).
Поскольку поле ntext, я начал приводить все это как ntext.Это поддерживает работу интерфейса, но приводит к описанной проблеме.Работа выполняется, говорит, что она завершена, ничего не выводится, теперь автоформаты при вставке в vscode, и я могу зайти в пользовательский интерфейс и просто нажать «применить» и перенести мой пароль, чтобы он действительно установил значения (это будет работать после того, как яэто, и он будет иметь значения, которые я передал предварительно заполнены)
Я бросил в COLLATE сегмент только для проверки, но это, казалось, ничего не меняет.
Вот что яВ настоящее время выполняется
UPDATE [ReportServer].[dbo].[Subscriptions]
SET Parameters =
CAST('<ParameterValues>
<ParameterValue>
<Name>Region</Name>
<Value>'+
(Select Region from [ReportServer].[dbo].[ParamOvershorts])
+'</Value>
</ParameterValue>
<ParameterValue>
<Name>GMName</Name>
<Value>'+
(Select GMName from [ReportServer].[dbo].[ParamOvershorts])
+'</Value>
</ParameterValue>
<ParameterValue>
<Name>EndDate</Name>
<Value>2/8/2019 12:00:00 AM</Value>
</ParameterValue>
<ParameterValue>
<Name>StartDate</Name>
<Value>2/1/2019 12:00:00 AM</Value>
</ParameterValue>
</ParameterValues>' COLLATE Latin1_General_100_CI_AS_KS_WS AS ntext)
where SubscriptionID = 'ID is here'
Ожидаемый вывод должен представлять собой отчет с новыми параметрами.
Фактический вывод означает, что задание выполнено успешно (поэтому событие было добавлено), но ничего не выводится.
Edit-
Нашли решение, см. Ниже