Задача скрипта

Задача "Скрипт" предоставляет код для выполнения функций, недоступных во встроенных задачах и преобразованиях, предоставляемых службами SQL Server Integration Services. Задача "Скрипт" также может объединять функции в один скрипт вместо использования нескольких задач и преобразований. Вы используете задачу "Скрипт" для работы, которая должна выполняться один раз в пакете (или один раз для каждого перечисленного объекта), а не один раз для каждой строки данных.

Задача «Скрипт» позволяет выполнять следующее:

  • Доступ к данным с помощью других технологий, которые не поддерживаются встроенными типами подключений. Например, скрипт может использовать интерфейсы службы Active Directory (ADSI) для доступа к именам пользователей из Active Directory.

  • Создайте счетчик производительности для конкретного пакета. Например, скрипт может создать счетчик производительности, обновляемый во время выполнения сложной или плохо выполняющей задачи.

  • Определите, являются ли указанные файлы пустыми или сколько строк они содержат, а затем на основе этой информации влияют на поток управления в пакете. Например, если файл содержит нулевые строки, значение переменной, равное 0, и ограничение приоритета, которое оценивает значение, предотвращает копирование файла задаче файловой системы.

Если вы должны использовать скрипт для одной и той же работы для каждой строки данных в наборе, следует использовать компонент скрипта вместо задачи "Скрипт". Например, если вы хотите оценить разумность объема отправки и пропустить строки данных с очень высоким или низким уровнем, вы будете использовать компонент скрипта. Дополнительные сведения см. в статье Script Component.

Если несколько пакетов используют скрипт, рассмотрите возможность написания настраиваемой задачи вместо использования задачи "Скрипт". Дополнительные сведения см. в разделе Разработка пользовательской задачи.

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

Написание и запуск скрипта, который использует задача

Задача "Скрипт" использует средства Microsoft Visual Studio для приложений (VSTA) в качестве среды, в которой вы пишете скрипты и подсистему, на которой выполняются эти скрипты.

VSTA предоставляет все стандартные функции среды Visual Studio, такие как редактор Visual Studio с цветом, IntelliSense и обозреватель объектов. VSTA также использует тот же отладчик, что и другие средства разработки Майкрософт. Точки останова в скрипте эффективно работают с точками останова в задачах и контейнерах Integration Services. VSTA поддерживает языки программирования Microsoft Visual Basic и Microsoft Visual C#.

Чтобы запустить скрипт, необходимо установить VSTA на компьютере, на котором выполняется пакет. При запуске пакета задача загружает обработчик скриптов и запускает скрипт. Доступ к внешним сборкам .NET можно получить в скриптах, добавив ссылки на сборки в проекте.

Замечание

В отличие от предыдущих версий, где можно указать, были ли предварительно компилированы скрипты, все скрипты предварительно компилируются в SQL Server 2008 Integration Services (SSIS) и более поздних версиях. При предварительной компиляции скрипта подсистема языка не загружается во время выполнения, и пакет выполняется быстрее. Однако предварительно скомпилированные двоичные файлы используют значительное место на диске.

Настройка задачи "Скрипт"

Задачу "Скрипт" можно настроить следующим образом:

  • Укажите пользовательский скрипт, который выполняется задачей.

  • Укажите метод в проекте VSTA, который среда выполнения Службы интеграции вызывает в качестве точки входа в код скриптовой задачи.

  • Укажите язык скрипта.

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

Эти свойства можно задать с помощью конструктора служб SSIS или программно.

Настройка задачи скрипта в конструкторе

В следующей ScriptTaskLogEntry таблице описывается событие, которое можно регистрировать для задачи "Скрипт". Событие ScriptTaskLogEntry выбрано для ведения журнала на вкладке "Сведения " диалогового окна "Настройка журналов служб SSIS ". Дополнительные сведения см. в разделе логирование служб Integration Services (SSIS) и настраиваемые сообщения для логирования.

Запись журнала Описание
ScriptTaskLogEntry Сообщает результаты реализации ведения журнала в скрипте. Задача записывает запись журнала для каждого вызова Log метода Dts объекта. Задача записывает эти записи при запуске кода. Дополнительные сведения см. в разделе "Ведение журнала в задаче Скрипт".

Дополнительные сведения о свойствах, которые можно задать в конструкторе служб SSIS, см. в следующих разделах:

Дополнительные сведения о настройке этих свойств в конструкторе служб SSIS см. в следующем разделе:

Настройка задачи скрипта программным способом

Дополнительные сведения о программном задании этих свойств см. в следующем разделе: