Поделиться через


Использование переменных в пакетах

Переменные — полезное и гибкое дополнение к пакетам Integration Services; переменные могут обеспечивать взаимодействие между объектами в пакете и между родительскими и дочерними пакетами. Переменные также можно использовать в выражениях и сценариях.

Пользовательские и системные переменные

Службы Integration Services предоставляют системные переменные и поддерживают работу с пользовательскими. При создании нового пакета, добавлении в него контейнера или задачи или создании обработчика событий служб Integration Services включает в контейнер набор системных переменных. Системные переменные хранят полезную информацию о пакете, контейнере, задаче или обработчике событий. Например, во время выполнения системная переменная MachineName хранит имя компьютера, на котором запущен пакет, а переменная StartTime — время начала выполнения пакета. Системные переменные доступны только для чтения. Дополнительные сведения см. в разделе Системные переменные.

Можно создавать пользовательские переменные и задействовать их в пакетах. Есть множество способов использования пользовательских переменных в службах SSIS: в сценариях, в выражениях, использующих элементы управления очередностью, в контейнере «цикл по элементам», преобразованиях «Производный столбец» и «Условное разбиение» и в выражениях, обновляющих значения свойств.

Например, пользовательскую переменную можно задействовать в вычислении условия для контейнера «цикл по элементам». Можно также связать значение перечислителя коллекции в контейнере «цикл по каждому элементу» с переменной, а если задача «Выполнение SQL» содержит параметризованную инструкцию, то можно связать параметры инструкции с переменными. Дополнительные сведения см. в разделе Переменные служб Integration Services.

Сценарии использования переменных

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

Выражение свойств.  Используйте переменные для предоставления значений в выражениях свойств, устанавливающих свойства пакетов и объектов пакетов. Например, выражение SELECT * FROM @varTableName включает переменную varTableName, которая обновляет инструкцию SQL, выполняемую задачей «Выполнение SQL». Выражение DATEPART("d", GETDATE()) == 1? @[User::varPackageFirst]:@[User::varPackageOther] обновляет пакет, выполняемый задачей «Выполнение пакета», запуская пакет, указанный в переменной varPackageFirst, в первый день месяца и пакет, указанный в переменной varPackageOther, в остальные дни. Дополнительные сведения см. в разделе Использование выражений свойств в пакетах.

Выражения потоков данных.   Используйте переменные для предоставления значений выражениям, используемым преобразованиями «Производный столбец» и «Условное разбиение» для заполнения столбцов или направления строк на различные выходы преобразования. Например, выражение @varSalutation + LastName объединяет значение переменной VarSalutation и столбец LastName. Выражение Income < @HighIncome направляет на выход строки данных, в которых значение столбца Income меньше значения переменной HighIncome. Дополнительные сведения см. в разделах Преобразование «Производный столбец», Преобразование «Условное разбиение» и Использование выражений в пакетах.

Выражения управления очередностью.   Предоставляют значения для использования в управлении очередностью для определения запуска исполняемого объекта с таким управлением. Эти выражения могут использоваться вместе с результатом выполнения (успех, ошибка, завершение) либо вместо результата выполнения. Например, если выражение @varMax > @varMin получает значение true, исполняемый объект запускается. Дополнительные сведения см. в разделе Добавление выражений к объектам управления очередностью.

Параметры и коды возврата.   Предоставляют значения для ввода параметров или сохраняют значения выходных параметров и кодов возврата. Это можно сделать с помощью сопоставления переменных с параметрами и возвращаемыми значениями. Например, если переменная varProductId имеет значение 23 при выполнении инструкции SQL SELECT * from Production.Product WHERE ProductID = ?, запрос получит продукты с идентификатором ProductID, равным 23. Дополнительные сведения см. в разделах Задача «Выполнение SQL» и Работа с параметрами и коды возврата в задаче «Выполнение SQL».

Выражения контейнера «цикл по элементам».   Предоставляют значения для использования выражений инициализации, оценки и присваивания в контейнере «цикл по элементам». Например, если переменная varCount имеет значение 2, а varMaxCount — 10, выражением инициализации является @varCount, выражением оценки — @varCount < @varMaxCount, а выражением присваивания — @varCount =@varCount +1, цикл повторится 8 раз. Дополнительные сведения см. в разделе Контейнер «цикл по элементам».

Конфигурации переменной родительского пакета.   Передает значения из родительского пакета в дочерний. Дочерние пакеты могут получить доступ к переменным родительского пакета путем использования конфигураций переменных пакета. Например, если дочерний пакет должен использовать ту же дату, что и родительский пакет, он может определить конфигурацию переменной родительского пакета, которая определяет значение переменной, установленное с помощью функции GETDATE. Дополнительные сведения см. в разделах Задача «Выполнение пакета» и Конфигурации пакета.

Задача сценария и компонент сценария.   Предоставляет список переменных только для чтения и чтения/записи для задач сценария и компонента сценария, обновляет переменные для чтения/записи с помощью сценария и использует обновленные значения в сценарии или вне его. Например, в коде numberOfCars = CType(Dts.Variables("NumberOfCars").Value, Integer) переменная сценария numberOfCars обновлена значением переменной NumberOfCars. Дополнительные сведения см. в разделе Использование переменных в задаче «Сценарий».

Конфигурации и переменные

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

Добавление, изменение или удаление пользовательских переменных

Значок служб Integration Services (маленький)Будьте в курсе новых возможностей cлужб Integration Services

Чтобы загружать новейшую документацию, статьи, образцы и видеоматериалы от корпорации Майкрософт, а также лучшие решения от участников сообщества, посетите страницу служб Integration Services на сайтах MSDN или TechNet:

Чтобы получать автоматические уведомления об этих обновлениях, подпишитесь на RSS-каналы, предлагаемые на этой странице.