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


Задача «Скрипт»

Область применения: среда выполнения интеграции SSIS SQL Server в Фабрика данных Azure

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

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

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

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

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

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

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

Если в пакете решено использовать задачу «Скрипт», необходимо разработать скрипт, используемый задачей, и настроить саму задачу.

Разработка и выполнение скрипта, используемого задачей

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

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

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

Примечание.

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

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

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

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

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

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

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

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

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

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

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

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

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

Программная настройка задачи «Скрипт»

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

Редактор задачи «Скрипт» (страница «Общие»)

Страница Общие диалогового окна Редактор задачи «Скрипт» позволяет дать имя и описание задаче «Скрипт».

Дополнительные сведения о задаче «Скрипт» см. в разделах Script Task и Настройка задачи «Скрипт» в редакторе задачи «Скрипт». Дополнительные сведения о программировании задачи «Скрипт» см. в разделе Extending the Package with the Script Task.

Параметры

Имя
Задайте уникальное имя для задачи «Скрипт». Это имя используется в качестве метки для значка задачи.

Примечание.

Имена задач в пределах пакета должны быть уникальными.

Description
Введите описание задачи «Скрипт».

Редактор задачи «Скрипт» (страница «Скрипт»)

Используйте страницу Скрипт в диалоговом окне Редактор задачи «Скрипт» , чтобы задать свойства скрипта и указать переменные, к которым скрипт будет иметь доступ.

Примечание.

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

Дополнительные сведения о задаче «Скрипт» см. в разделах Script Task и Настройка задачи «Скрипт» в редакторе задачи «Скрипт». Дополнительные сведения о программировании задачи «Скрипт» см. в разделе Extending the Package with the Script Task.

Параметры

ScriptLanguage
Выберите язык сценариев для задачи, Microsoft Visual Basic или Microsoft Visual C#.

Изменить значение свойства ScriptLanguage для задачи после создания скрипта нельзя.

Чтобы установить значение по умолчанию языка скрипта для задачи «Скрипт», воспользуйтесь параметром Язык скрипта страницы Общие диалогового окна Параметры . Дополнительные сведения см. в разделе General Page.

EntryPoint
Укажите метод, который среда выполнения Integration Services вызывает в качестве точки входа в код задачи "Скрипт". Указанный метод должен находиться в классе ScriptMain проекта набор средств Microsoft Visual Studio Tools для работы с приложениями (VSTA) Класс ScriptMain является классом scriptMain по умолчанию, созданным шаблонами скриптов.

Для изменения имени метода в проекте VSTA следует поменять значение свойства EntryPoint .

ReadOnlyVariables
Введите через запятую список переменных "только для чтения", которые доступны для скрипта, или нажмите кнопку с многоточием (...) и выберите переменные в диалоговом окне Выбор переменных.

Примечание.

В именах переменных учитывается регистр.

ReadWriteVariables
Введите через запятую список переменных "для чтения и записи", которые доступны для скрипта, или нажмите кнопку с многоточием (...) и выберите переменные в диалоговом окне Выбор переменных.

Примечание.

В именах переменных учитывается регистр.

Изменение скрипта
Открывает среду VSTA IDE, в которой можно создать или изменить скрипт.