Пользовательская переменная SSIS не обновляется при выполнении задачи SQL
Я знаю, что это должно быть очень просто, но я не могу заставить его работать. Я использую задачу "Выполнение SQL" в потоке управления с намерением установить 2 user_variables, vRunID и vRelease. У меня есть очень простой оператор выбора, где я получаю одну строку, 2 столбца:
SELECT Id, release
FROM [Test].[Run]
where id = (select max(id) FROM [Test].[Run])
на вкладке набора результатов я попытался сопоставить, используя "Имя результата" обоих столбцов (Id и Release) и 0,1, с "Именем переменной" User::vRunID и User::vRelease. Я не могу получить значения переменных, чтобы изменить вообще. Если я жестко закодирую значения переменных, все работает нормально, но я бы хотел, чтобы он основывался на операторе select, чтобы мы могли просто запустить пакет и не нужно жестко кодировать значения (именно поэтому мы в первую очередь используем SSIS) Есть что-то простое, что мне не хватает? Нужно ли что-то устанавливать в параметрах? Смотря бесчисленное количество онлайн-видео, я вижу, что все настроено так, как должно, но значения не загружаются.
2 ответа
Я думаю, что ваша проблема в том, что окно переменных не обновляется во время выполнения. Я нашел две вещи, которые смутили меня о переменных в прошлом. Во-первых, текущее значение переменных во время выполнения можно найти, посмотрев на окна наблюдения или локальных файлов в меню отладки. Во-вторых, я должен был использовать "запуск" вместо выполнения задачи / контейнера, чтобы это работало. Поэтому, если бы я хотел отладить третий контейнер в моем пакете, я мог либо запустить весь процесс, либо, если возможно, отключить первые два контейнера, чтобы я мог "отладить" третий контейнер. Надеюсь это поможет.
Проверить
EvaluateAsExpression
свойство переменной. У меня была такая же проблема, но как только я изменил это свойство на
False
, значение переменной будет обновляться.