Вызов процедуры обновления (которая принимает параметр XML) несколько раз в отчете SSRS

У меня есть процедура, которая принимает параметр @Data типа xml и обновляет порядок в таблице заказов.

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

Допустим, CTE возвращает orderIds: 1234 и 4567.

Следующие две строки обновят порядок 1234 в таблице заказов.

    @XmlData XML = (select MyScalarValueFunction('1234'))
    execute UpdateProcedure @Data = @XmlData

и допустим, что запрос набора данных отчета выбирает все запросы от клиентов, и если заказ клиента был обработан, я хочу обновить orderId в таблице.

    select c.CustomerName, c.OrderId from CustomerDemandsTable c

Моя задача: как включить две строки для обновления таблицы в мой запрос набора данных отчета для каждого заказа.

Раньше я обновлял таблицы из набора данных SSRS. Но каждый раз, когда я обновлял всю таблицу сразу, мне не нужно было объявлять какие-либо параметры и вызывать процедуру обновления в середине запроса.

Любая помощь горячо приветствуется.


person Fatemeh Shakhsesalim    schedule 25.04.2016    source источник


Ответы (1)


Если я правильно понимаю ваши требования, вы хотите выполнить 3 шага:

  1. Определите, нужно ли обновлять данные
  2. Обновить данные
  3. Данные возврата (включая обновленные данные)

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

person Jesse Potter    schedule 19.05.2016