Использование переменных в пакетах
Изменения: 14 апреля 2006 г.
Переменные — полезное и гибкое дополнение к пакетам SQL Server 2005 Integration Services (SSIS); переменные могут обеспечивать взаимодействие между объектами в пакете и между родительскими и дочерними пакетами. Переменные также можно использовать в выражениях и сценариях.
Пользовательские и системные переменные
Службы 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».
Выражения контейнера «цикл по элементам». Предоставляют значения для использования выражений инициализации, оценки и присваивания в контейнере «цикл по элементам». Например, если переменная varCount
имеет значение 2, а varMaxCount
— 10, выражением инициализации является @varCount
, выражением оценки — @varCount < @varMaxCount
, а выражением присваивания — @varCount =@varCount +1
, цикл повторится 8 раз. Дополнительные сведения см. в разделе Контейнер «Цикл по элементам».
Конфигурации переменной родительского пакета. Передает значения из родительского пакета в дочерний. Дочерние пакеты могут получить доступ к переменным родительского пакета путем использования конфигураций переменных пакета. Например, если дочерний пакет должен использовать ту же дату, что и родительский пакет, он может определить конфигурацию переменной родительского пакета, которая определяет значение переменной, установленное с помощью функции GETDATE. Дополнительные сведения см. в разделах Задача «Выполнение пакета» и Конфигурации пакета.
Задача сценария и компонент сценария. Предоставляет список переменных только для чтения и чтения/записи для задач сценария и компонента сценария, обновляет переменные для чтения/записи с помощью сценария и использует обновленные значения в сценарии или вне его. Например, в коде numberOfCars = CType(Dts.Variables("NumberOfCars").Value, Integer)
переменная сценария numberOfCars
обновлена значением переменной NumberOfCars
. Дополнительные сведения см. в разделе Using Variables in the Script Task.
Конфигурации и переменные
Чтобы динамически обновлять переменные, можно создавать конфигурации для переменных, развертывать их вместе с пакетами и обновлять значения переменных в файле конфигурации при развертывании пакета. Во время выполнения пакет будет использовать обновленные значения переменных. Дополнительные сведения см. в разделе Создание конфигураций пакетов.
Добавление, изменение или удаление пользовательских переменных
См. также
Другие ресурсы
Создание пакетов в конструкторе служб SSIS
Справка и поддержка
Получение помощи по SQL Server 2005
Журнал изменений
Версия | Журнал |
---|---|
14 апреля 2006 г. |
|