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


Задача «Сценарий»

Изменения: 17 июля 2006 г.

Задача «Сценарий» представляет код для выполнения функций, недоступных в задачах и преобразованиях, предоставляемых средствами служб SQL Server 2005 Integration Services. Задача «Сценарий» также позволяет объединять функции в одном сценарии вместо использования нескольких задач и преобразований. Задачу «Сценарий» следует использовать для выполнения операций над пакетом (или над каждым перечисленным объектом), не над каждой строкой данных. Если необходимо использовать сценарий для выполнения одинаковых операций над каждой строкой в наборе, следует использовать компонент «Сценарий», а не задачу «Сценарий». Например, если необходимо определить адекватность почтовых расходов и пропустить записи с очень большими или очень маленькими суммами, следует использовать компонент «Сценарий». Дополнительные сведения см. в разделе Компонент «Сценарий».

Код, создаваемый задачей «Сценарий», является пользовательским кодом Microsoft Visual Basic .NET, который компилируется и выполняется при выполнении пакета.

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

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

Задачу сценария можно настроить следующими способами:

  • Предоставить пользовательский сценарий, выполняемый задачей.
  • Задать имя функции, являющейся точкой входа в сценарий.
  • Указать, следует ли предварительно компилировать сценарий.
  • При необходимости предоставить списки используемых в сценарии переменных чтения и записи и только чтения.

Задача «Сценарий» использует Visual Studio для приложений (VSA) в качестве ядра для написания и выполнения сценариев. Для запуска пакетов на компьютере, где выполняется сценарий, должен быть установлен VSA.

Дополнительные сведения о написании кода для задачи сценария см. в разделе Extending the Package with the Script Task.

Если сценарий используется несколькими пакетами, рекомендуется написать пользовательскую задачу вместо использования задачи сценария. Дополнительные сведения см. в разделе Developing a Custom Task.

Среда Visual Studio для приложений

Задача сценария предоставляет доступ к среде VSA. Можно использовать все стандартные функции среды Visual Studio .NET, в том числе редактор Visual Studio с цветовым выделением, технологию IntelliSense и обозреватель объектов.

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

Задача сценария предоставляет несколько преимуществ по сравнению с задачей сценария ActiveX. К ним относятся:

  • Интегрированная среда разработки. VSA предлагает ту же среду разработки, которая предоставляется другими средствами разработки корпорации Майкрософт.
  • Интегрированный отладчик. VSA делает возможной отладку сценариев в том же отладчике, который предоставляется другими средствами разработки корпорации Майкрософт. Точки останова в сценарии прозрачно совмещаются с точками останова в задачах и контейнерах служб Integration Services.
  • Применение языка среды CLR.
  • Интеграция с конструктором служб SSIS.

Задача «Сценарий» заменяет задачу «Сценарий ActiveX». Используйте задачу «Сценарий ActiveX» только для обеспечения обратной совместимости. В следующей версии Microsoft SQL Server эта возможность будет удалена. Не используйте ее при работе над новыми приложениями и как можно быстрее измените приложения, в которых она в настоящее время используется.

Оптимизация

Компиляцию сценариев VSA необходимо осуществлять до запуска пакета. Задача сценария содержит режим предварительной компиляции сценария в двоичном коде при сохранении пакета. Если сценарий предварительно скомпилирован, при выполнении не загружается языковое ядро и пакет обрабатывается быстрее. Тем не менее, скомпилированные двоичные файлы требуют значительного места на диске. Если предварительной компиляции не было, сценарий компилируется при выполнении, что замедляет обработку пакета, но требует меньше места на диске. Когда есть возможность хранения пакетов больших размеров, следует проводить предварительную компиляцию сценариев VSA. Кроме того, в 64-разрядной среде может выполняться только заранее скомпилированный сценарий.

Выбор предварительной компиляции сценария также обусловливается тем, что скомпилированный сценарий не поддается отладке. По умолчанию в задаче «Сценарий» задана предварительная компиляция сценария, и ее свойство PreCompile имеет значение True. Свойство PreCompile обычно имеет значение False во время разработки и отладки пакета, а затем перед развертыванием пакета значение устанавливают в True.

Пользовательские сообщения для ведения журнала, доступные в задаче «Сценарий»

В следующей таблице перечислены пользовательские записи в журнале для задачи «Сценарий». Дополнительные сведения см. в разделах Реализация ведения журналов в пакетах и Пользовательские сообщения для ведения журнала.

Запись журнала Описание

ScriptTaskLogEntry

Сообщает о результатах выполнения операции ведения журнала в сценарии. Запись журнала формируется для каждого вызова метода Log объекта Dts. Эта запись формируется в момент запуска кода. Дополнительные сведения см. в разделе Logging in the Script Task.

Настройка задачи сценария

Свойства задаются через конструктор служб SSIS или программно.

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

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

Программная настройка задачи сценария

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

См. также

Основные понятия

Задачи служб Integration Services
Создание пакета потока управления
Использование служб Integration Services на 64-разрядных компьютерах

Справка и поддержка

Получение помощи по SQL Server 2005

Журнал изменений

Версия Журнал

17 июля 2006 г.

Измененное содержимое
  • Добавлена таблица пользовательских записей журнала.

5 декабря 2005 г.

Измененное содержимое
  • Добавлены подсказки о предпочтительном использовании задачи «Сценарий» по сравнению с компонентом «Сценарий».