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

Применимо к: даSQL Server (все поддерживаемые версии) да Azure-SSIS Integration Runtime в Фабрике данных Azure

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

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

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

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

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

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

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

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

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

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

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

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

Примечание

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Параметры

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

Примечание

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

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

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

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

Примечание

В Службы 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 for Applications (VSTA). ScriptMain является заданным по умолчанию классом, который создается в шаблонах скриптов.

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

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

Примечание

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

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

Примечание

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

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