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


Программа dtexec

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

Служебная программа командной строки dtexec используется для настройки и выполнения пакетов СЛУЖБ SQL Server Integration Services. Служебная программа dtexec обеспечивает доступ ко всем функциям настройки и выполнения пакетов, таким как параметры, подключения, свойства, переменные, средства ведения журналов и индикаторы выполнения. Служебная программа dtexec позволяет загружать пакеты из этих источников: сервер служб Integration Services, файл проекта ispac, базу данных Microsoft SQL Server, хранилище пакетов служб SSIS и файловую систему.

Примечание.

При использовании текущей версии служебной программы dtexec для выполнения пакета, созданного в более ранней версии Службы Integration Services, программа временно обновляет пакет до текущего формата. Однако программа dtexec не позволяет сохранить обновленный пакет. Дополнительные сведения об окончательном обновлении пакета до текущей версии см. в разделе Upgrade Integration Services Packages.

Этот раздел включает следующие подразделы:

Сервер служб Integration Services и файл проекта

При использовании dtexec для запуска пакетов на сервере Integration Services dtexec вызывает хранимые процедуры catalog.create_execution (база данных SSISDB), catalog.set_execution_parameter_value (база данных SSISDB) и catalog.start_execution (база данных SSISDB) для создания выполнения, задания значений параметров и запуска выполнения. Все журналы выполнения можно просматривать с сервера в связанных представлениях или с помощью стандартных отчетов, доступных в SQL Server Management Studio. Дополнительные сведения об отчетах см. в разделе Отчеты для сервера служб Integration Services.

Ниже приведен пример выполнения пакета на сервере служб Integration Services.

DTExec /ISSERVER "\SSISDB\folderB\Integration Services Project17\Package.dtsx" /SERVER "." /Envreference 2 /Par "$Project::ProjectParameter(Int32)";1 /Par "Parameter(Int32)";21 /Par "CM.sqlcldb2.SSIS_repro.InitialCatalog";ssisdb /Par "$ServerOption::SYNCHRONIZED(Boolean)";True  

При использовании dtexec для запуска пакета из ISPAC-файла проекта применяются параметры /Proj[ect] и /Pack[age] для указания пути к проекту и имени потока проекта. При преобразовании проекта в модель развертывания проекта с помощью мастера преобразования проектов служб Integration Services из SQL Server Management Studio мастер создает файл ispac projec. Дополнительные сведения см. в разделе Развертывание проектов и пакетов служб Integration Services (SSIS).

Dtexec можно использовать с сторонними средствами планирования для планирования пакетов, развернутых на сервере Служб Integration Services.

Вопросы установки на 64-разрядные компьютеры

На 64-разрядном компьютере службы Integration Services устанавливают 64-разрядную версию служебной программы dtexec (dtexec.exe). Если какие-либо пакеты нужно запустить в 32-разрядном режиме, следует установить 32-разрядную версию программы dtexec . Чтобы установить 32-разрядную версию программы dtexec , необходимо выбрать клиентские средства или SQL Server Data Tools (SSDT) во время установки.

По умолчанию 64-разрядный компьютер с 64-разрядными и 32-разрядными версиями установленной программы командной строки Служб Integration Services будет запускать 32-разрядную версию в командной строке. 32-разрядная версия запускается, потому что путь к каталогу для 32-разрядной версии появляется в переменной среды PATH перед путем к каталогу для 64-разрядной версии. (Обычно путь к каталогу 32-разрядной версии выглядит следующим образом: <диск>:\Program Files(x86)\Microsoft SQL Server\110\DTS\Binn, а путь к каталогу 64-разрядной версии — <диск>:\Program Files\Microsoft SQL Server\110\DTS\Binn.)

Примечание.

Если для запуска программы используется агент SQL Server, то он автоматически использует 64-разрядную версию программы. Чтобы определить точное расположение исполняемого файла программы, агент SQL Server использует реестр, а не переменную среды PATH.

Чтобы убедиться, что в командной строке запущена 64-разрядная версия программы, выполните одно из следующих действий.

  • Откройте окно командной строки, перейдите в каталог, содержащий 64-разрядную версию служебной программы (<диск>>:\Program Files\Microsoft SQL Server\110\DTS\Binn), а затем запустите программу из этого расположения.

  • В командной строке запустите служебную программу, введя полный путь (<диск>:\Program Files\Microsoft SQL Server\110\DTS\Binn) к 64-разрядной версии программы.

  • Окончательно измените порядок путей в переменной среды PATH, поместив в ней путь к 64-разрядной версии (<диск>:\Program Files\Microsoft SQL Server\110\DTS\Binn) перед путем к 32-разрядной версии (<диск>:\ Program Files(x86)\Microsoft SQL Server\110\DTS\Binn).

Рекомендации для компьютеров, где проведены параллельные установки

При установке служб SQL Server 2019 Integration Services (SSIS) на компьютере с установленными службами SQL Server 2005 Integration Services (SSIS) или SQL Server 2008 Integration Services (SSIS) устанавливается несколько версий служебной программы dtexec .

Чтобы гарантированно запустить правильную версию служебной программы, при запуске ее в командной строке укажите полный путь (<диск>:\Program Files\Microsoft SQL Server\<версия>\DTS\Binn).

Этапы выполнения

Программа во время выполнения проходит четыре стадии. Фазы следующие:

  1. Стадия разбора команды. Командная строка производит чтение списка указанных параметров и аргументов. В случае обнаружения параметра /? или /HELP все последующие этапы пропускаются.

  2. Стадия загрузки пакета. Происходит загрузка пакета, указанного параметрами /SQL, /FILEили /DTS .

  3. Стадия настройки. Обрабатываются параметры в следующем порядке:

    • параметры, устанавливающие флаги, переменные и свойства пакета;

    • параметры, проверяющие номера версии и сборки пакета;

    • параметры, задающие поведение программы во время выполнения, например вывод отчетов.

  4. Стадия проверки и выполнения. Пакет выполняется или проверяется без запуска, если был указан параметр /VALIDATE .

Возвращаемые коды завершения

Коды завершения, возвращаемые программой dtexec

При выполнении пакета программа dtexec может вернуть код завершения. Код завершения используется для заполнения переменной ERRORLEVEL, значение которой впоследствии можно будет проверить в условных инструкциях или логике ветвления в пакетном файле. В следующей таблице перечислены значения, которые программа dtexec может вернуть при завершении.

значение Описание
0 Пакет успешно выполнен.
1 Ошибка выполнения пакета.
3 Выполнение пакета было отменено пользователем.
4 Программе не удалось найти запрошенный пакет. Не удалось найти пакет.
5 Программе не удалось загрузить запрошенный пакет. Не удалось загрузить пакет.
6 Программа обнаружила внутреннюю ошибку синтаксиса или семантики в командной строке.

Правила синтаксиса

Синтаксические правила программы

Все параметры должны начинаться со знака косой черты (/) или знака минуса (-). Показанные здесь параметры начинаются с косой черты (/), которую, однако, можно заменить на знак минуса (-).

Аргумент должен быть заключен в кавычки, если он содержит пробел. Если аргумент не заключен в кавычки, он не может содержать пробелы.

Двойные кавычки в пределах строк, заключенных в кавычки, преобразуются в одиночные кавычки.

Для параметров и аргументов, кроме паролей, регистр символов не учитывается.

Использование программы dtexec из процедуры xp_cmdshell

Использование программы dtexec из процедуры xp_cmdshell

Программу dtexec можно запустить из командной строки xp_cmdshel . В следующем примере показан вызов пакета UpsertData.dtsx и пропуск кода возврата:

EXEC xp_cmdshell 'dtexec /f "C:\UpsertData.dtsx"'  

В следующем примере показан вызов этого же пакета и считывание кода возврата:

DECLARE @returncode int  
EXEC @returncode = xp_cmdshell 'dtexec /f "C:\UpsertData.dtsx"'  

Внимание

В Microsoft SQL Server параметр xp_cmdshell отключен по умолчанию для новых установок. Этот режим можно включить с помощью системной хранимой процедуры sp_configure . Дополнительные сведения см. в разделе Параметр конфигурации сервера xp_cmdshell.

Использование программы dtexec из Bash

Bash — это популярная оболочка для Linux. Ее также можно использовать в Windows. Программу dtexec можно запустить из командной строки Bash. Обратите внимание на то, что точка с запятой (;) в Bash — это оператор разделения команд. Это особенно важно учитывать при передаче значений в пакет с помощью параметра /Conn[ection], /Par[arameter] или /Set, так как в этом случае точка с запятой используется для разделения имени и значения элемента. В следующем примере показано, как правильно экранировать точку с запятой и другие элементы при использовании Bash и передаче значений в пакет:

dtexec /F MyPackage.dtsx /CONN "MyConnection"\;"\"MyConnectionString\""

Синтаксис

dtexec /option [value] [/option [value]]...  

Параметры

  • /? [option_name]\(необязательный). Отображает параметры командной строки или справку по указанному параметру option_name и завершает выполнение программы.

    Если указать аргумент option_name, dtexec запускает электронную книгу SQL Server и отображает раздел служебной программы dtexec.

  • /Ca[llerInfo](необязательный). Задает дополнительные сведения для выполнения пакета. При запуске пакета при помощи агента SQL Server агент устанавливает этот аргумент, чтобы он указывал, что выполнение пакета вызывается агентом SQL Server. Этот параметр не учитывается, если служебная программа dtexec запускается из командной строки.

  • /CheckF[ile] filespec: (необязательно). Задает в качестве значения свойства пакета CheckpointFileName путь и файл, указанные в filespec. Этот файл используется при перезапуске пакета. Если указан этот параметр, но не указано значение для имени файла, в качестве значения для свойства пакета CheckpointFileName используется пустая строка. Если этот параметр не указан, то значения пакета сохраняются.

  • /CheckP[ointing] {on\off} : (необязательно). Устанавливает значение, определяющее, будет ли пакет использовать контрольные точки во время выполнения. Значение on указывает, что при неудачном выполнении пакета он будет перезапущен. При повторном запуске пакета после его неудачного выполнения ядро времени выполнения использует файл контрольных точек для повторного запуска пакета с момента возникновения ошибки.

    Если параметр объявляется без указания значения, по умолчанию принимается значение «on». Выполнение пакета будет завершено с ошибкой, если значение равно «on», а файл контрольных точек не найден. Если этот параметр не указан, то сохраняется значение, установленное в пакете. Дополнительные сведения см. в разделе Restart Packages by Using Checkpoints.

    Указание параметра /CheckPointing on команды dtexec эквивалентно заданию для свойства SaveCheckpoints пакета значения True, а для свойства CheckpointUsage — значения Always.

  • /Com[mandFile] filespec: (необязательно). Задает параметры команд, выполняемых с программой dtexec. Файл, указанный в filespec , открыт, и параметры файла считываются из этого файла до обнаружения EOF. filespec является текстовым файлом. Аргумент filespec указывает имя и путь к командному файлу, который связывается с выполнением пакета.

  • /Conf[igFile] filespec: (необязательно). Указывает файл конфигурации, из которого происходит извлечение значений. Использование этого параметра позволяет установить конфигурацию времени выполнения, отличную от конфигурации, указанной во время разработки пакета. Различные настройки конфигурации можно сохранять в XML-файле конфигурации, а затем загружать их с использованием параметра /ConfigFile перед выполнением пакета.

    С помощью параметра /ConfigFile можно загрузить во время выполнения дополнительные параметры конфигурации, не указанные во время разработки. Однако с помощью параметра /ConfigFile нельзя изменить параметры настройки, которые были заданы во время разработки. Сведения о применении параметров конфигурации пакета см. в разделе Package Configurations.

  • /Conn[ection] id_or_name; connection_string [[; id_or_name; connection_string]...]: (необязательно). Указывает, что диспетчер соединений с указанным именем или идентификатором GUID находится в данном пакете и задает строку соединения.

    Должны быть указаны оба параметра: имя или идентификатор GUID диспетчера соединений в аргументе id_or_name и допустимая строка соединения — в аргументе connection_string. Дополнительные сведения см. в статье Соединения служб Integration Services (SSIS).

    Во время выполнения можно использовать параметр /Connection для загрузки параметров конфигурации пакета из расположения, отличного от указанного во время разработки. Затем значения этих параметров конфигурации заменяют первоначально указанные значения. Однако параметр /Connection можно использовать только для конфигураций, таких как конфигурации SQL Server, которые используют диспетчер соединений. Сведения о применении конфигурации пакета см. в разделах Конфигурации пакета и Изменения в работе служб Integration Services в SQL Server 2016.

  • /Cons[oleLog] [[displayoptions];[list_options;src_name_or_guid]...]. (необязательный). Показывает в консоли во время выполнения пакета указанные записи журнала. При отсутствии этого параметра записи журнала в консоли не показываются. Если этот параметр указан без задания максимального числа записей, то будут показаны все записи журнала. Для ограничения отображаемых в консоли записей можно указать отображаемые столбцы с помощью параметра displayoptions и ограничить типы записей журнала с помощью параметра list_options .

    Примечание.

    При запуске пакета на сервере Integration Services с использованием параметра /ISSERVER объем выходных данных консоли ограничен, и большинство параметров /Cons[oleLog] не применяется. Все журналы выполнения можно просматривать с сервера в связанных представлениях или с помощью стандартных отчетов, доступных в SQL Server Management Studio. Дополнительные сведения об отчетах см. в разделе Отчеты для сервера служб Integration Services.

    Параметр displayoptions имеет следующие значения.

    • N (Имя);

    • C (Компьютер);

    • O (Оператор);

    • S (Имя источника);

    • G (Идентификатор GUID источника);

    • X (Идентификатор GUID процесса выполнения);

    • M (Сообщение);

    • T (Время запуска и окончания).

    Параметр list_options имеет следующие значения.

    • I . Определяет содержание списка включений. Регистрируются только указанные имена или идентификаторы GUID источников.

    • E . Определяет содержание списка исключений. Указанные имена или идентификаторы GUID источников не регистрируются.

    • Параметр src_name_or_guid , указанный для включения или исключения, является именем события, именем источника либо идентификатором GUID источника.

    При использовании нескольких параметров /ConsoleLog в одной командной строке они взаимодействуют следующим образом:

    • порядок их появления не имеет значения;

    • если в командной строке нет списка включений, то списки исключений применяются ко всем типам записей журнала;

    • если в командной строке есть список включений, то списки исключений применяются к объединению всех списков включения.

    Некоторые примеры использования параметра /ConsoleLog см. в разделе Примечания .

  • /D[ts] package_path: (необязательно). Загружает пакет из хранилища пакетов служб SSIS. Пакеты, которые хранятся в хранилище пакетов служб SSIS, развертываются с помощью устаревшей модели развертывания пакетов. Чтобы запустить пакеты, развернутые на сервере Служб Integration Services с помощью модели развертывания проекта, используйте параметр /ISServer . Дополнительные сведения о моделях развертывания пакетов и проектов см. в разделе Deployment of Projects and Packages.

    Аргумент package_path указывает относительный путь пакета служб SSIS, начиная с корневого каталога хранилища пакетов служб SSIS, и включает имя пакета служб SSIS. Если путь или имя файла, указанные в аргументе package_path , содержат пробел, то аргумент package_path необходимо заключить в кавычки.

    Параметр /DTS не может использоваться одновременно с параметром /File или /SQL . Если указано несколько параметров, то выполнение программы dtexec завершится с ошибкой.

  • /De[crypt] password: (необязательно). Задает пароль для расшифровки, используемый при загрузке пакета с шифрованием пароля.

  • (Необязательно) Создает отладочные файлы дампа MDMP и TMP, если во время работы пакета происходит одно или несколько указанных событий. Аргумент error code указывает тип кода события (ошибка, предупреждение или информация), при наступлении которого система создаст отладочные файлы дампа. Чтобы задать несколько кодов событий, отделите каждый аргумент error code точкой с запятой (;). Не используйте кавычки с аргументом error code .

    В следующем примере формируются отладочные файлы при возникновении ошибки DTS_E_CANNOTACQUIRECONNECTIONFROMCONNECTIONMANAGER.

    /Dump 0xC020801C  
    

    Код ошибки /Dump: по умолчанию службы Integration Services хранят файлы дампа отладки в папке,< диск>:\Program Files\Microsoft SQL Server\110\Shared\ErrorDumps.

    Примечание.

    Отладочные файлы дампа могут содержать конфиденциальные сведения. Скопируйте файлы в папку с ограниченным доступом или ограничьте доступ к ним при помощи списка управления доступом (ACL). В частности, перед отправкой отладочных файлов в службу технической поддержки Майкрософт рекомендуется удалить из них все конфиденциальные сведения.

    Чтобы применить этот параметр ко всем пакетам, запускаемым с помощью программы dtexec , добавьте значение DumpOnCodes типа REG_SZ в раздел реестра HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\110\SSIS\Setup\DtsPath. Значение данных DumpOnCodes содержит код (или коды) ошибки, которые активируют в системе создание отладочных файлов дампа. Если кодов ошибки несколько, их разделяют точкой с запятой (;).

    Если добавить значение DumpOnCodes в раздел реестра и использовать параметр /Dump , система будет создавать отладочные файлы дампа с учетом обоих параметров.

    Дополнительные сведения об отладочных файлах дампа см. в разделе Generating Dump Files for Package Execution.

  • /DumpOnError(необязательный). Создает отладочные файлы дампа MDMP и TMP, если во время работы пакета происходит любая ошибка.

    По умолчанию Integration Services сохраняют файлы дампа отладки в папке <диск>:\Program Files\Microsoft SQL Server\110\Shared\ErrorDumps.

    Примечание.

    Отладочные файлы дампа могут содержать конфиденциальные сведения. Скопируйте файлы в папку с ограниченным доступом или ограничьте доступ к ним при помощи списка управления доступом (ACL). В частности, перед отправкой отладочных файлов в службу технической поддержки Майкрософт рекомендуется удалить из них все конфиденциальные сведения.

    Чтобы применить этот параметр ко всем пакетам, запускаемым с помощью программы dtexec , добавьте значение DumpOnError типа REG_DWORD в раздел реестра HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\110\SSIS\Setup\DtsPath. Значение DumpOnError типа REG_DWORD указывает, нужно ли использовать параметр /DumpOnError с программой dtexec .

    • Ненулевое значение означает, что система будет создавать отладочные файлы дампа при возникновении любой ошибки независимо от того, используется ли параметр /DumpOnError с программой dtexec .

    • Нулевое значение указывает, что система будет создавать отладочные файлы дампа при возникновении ошибки только при использовании параметра /DumpOnError с программой dtexec .

    Дополнительные сведения об отладке файлов дампа см. в разделе Generating Dump Files for Package Execution.

  • Идентификатор ссылки на среду /Env[Reference]: (необязательно). Указывает ссылку на среду (идентификатор), используемую выполнением пакета, для пакета, развернутого на сервере Служб Integration Services. Параметры, настроенные для привязки переменных, будут использовать значения переменных, которые содержатся в среде.

    Используйте параметр /Env[Reference] вместе с параметрами /ISServer и /Server .

    Этот параметр используется агентом SQL Server.
    -- /F[ile] filespec: (необязательно). Производит загрузку пакета, сохраненного в файловой системе. Пакеты, которые сохраняются в файловой системе, развертываются с помощью устаревшей модели развертывания пакетов. Чтобы запустить пакеты, развернутые на сервере Служб Integration Services с помощью модели развертывания проекта, используйте параметр /ISServer . Дополнительные сведения о моделях развертывания пакетов и проектов см. в разделе Deployment of Projects and Packages.

Аргумент filespec определяет путь и имя файла пакета. Можно указывать либо путь в формате UNC, либо локальный путь. Если путь или имя файла, указанные в аргументе filespec , содержат пробел, то аргумент filespec необходимо заключить в кавычки.

  • Параметр /File не может использоваться одновременно с параметром /DTS или /SQL . Если указано несколько параметров, то выполнение программы dtexec завершится с ошибкой.

  • /H[elp] [option_name]\(необязательный). Отображает справку по параметрам командной строки или справку по указанному параметру option_name и завершает выполнение программы.

    Если указать аргумент option_name, dtexec запускает электронную книгу SQL Server и отображает раздел служебной программы dtexec.

  • /ISServer packagepath: (необязательно). Запускает пакет, развернутый на сервере Служб Integration Services. Аргумент PackagePath указывает полный путь и имя файла пакета, развернутого на сервере Служб Integration Services. Если путь или имя файла, указанные в аргументе PackagePath , содержат пробел, то аргумент PackagePath необходимо заключить в кавычки.

    Формат пакета следующий:

    \<catalog name>\<folder name>\<project name>\package file name  
    

    Параметр /Server используется вместе с параметром /ISSERVER . Выполнение пакета на сервере служб SSIS возможно только при использовании проверки подлинности Windows. Текущий пользователь Windows используется для доступа к пакету. Если параметр /Server опущен, предполагается, что предполагается локальный экземпляр SQL Server по умолчанию.

    Параметр /ISSERVER не может использоваться одновременно с параметрами /DTS, /SQL или /File . Если указано несколько параметров, то выполнение dtexec завершится с ошибкой.

    Этот параметр используется агентом SQL Server.

  • /L[ogger] classid_orprogid; configstring: (необязательно). Связывает одного или нескольких поставщиков журналов с выполнением пакета служб SSIS. Параметр classid_orprogid определяет регистратор и может быть указан в виде идентификатора GUID класса. configstring представляет собой строку, применяемую при настройке регистратора.

    Следующий список содержит доступные типы регистраторов.

    • Текстовый файл:

      • ProgID: DTS.LogProviderTextFile.1

      • ClassID: {59B2C6A5-663F-4C20-8863-C83F9B72E2EB}

    • SQL Server Profiler:

      • ProgID: DTS.LogProviderSQLProfiler.1

      • ClassID: {5C0B8D21-E9AA-462E-BA34-30FF5F7A42A1}

    • SQL Server.

      • ProgID: DTS.LogProviderSQLServer.1

      • ClassID: {6AA833A1-E4B2-4431-831B-DE695049DC61}

    • Журнал событий Windows:

      • ProgID: DTS.LogProviderEventLog.1

      • ClassID: {97634F75-1DC7-4F1F-8A4C-DAF0E13AAA22}

    • XML-файл:

      • ProgID: DTS.LogProviderXMLFile.1

      • ClassID: {AFED6884-619C-484F-9A09-F42D56E1A7EA}

  • /M[axConcurrent] concurrent_executables: (необязательно). Указывает количество исполняемых файлов, которые пакет может запускать одновременно. Указанное значение должно быть положительным целым числом или значением –1. Значение -1 означает, что служба SSIS позволяет максимальное количество одновременно выполняющихся исполняемых файлов, равное общему количеству процессоров на компьютере, выполняющем пакет, плюс два.

  • /Pack[age] PackageName: (необязательно). Указывает пакет, который выполняется. Этот параметр используется в основном при выполнении пакета из Visual Studio.

  • Пароль /P[assword]: (необязательно). Позволяет получить пакет, защищенный проверкой подлинности SQL Server. Этот параметр используется совместно с параметром /User . Если параметр /Password отсутствует, но указан параметр /User , используется пустой пароль. Значение password может быть заключено в кавычки.

    Внимание

    По возможности используйте аутентификацию Windows.

  • /Par[ameter] [$Package:: | $Project:: | $ServerOption::] parameter_name [(data_type)]; literal_value(необязательный). Задает значения параметра. Можно указать несколько параметров /Parameter . Типы данных — это коды CLR TypeCodes, представленные в виде строк. В случае с нестроковыми параметрами тип данных указывается в скобках, после чего следует имя параметра.

    Параметр /Parameter может указываться только с параметром /ISServer .

    С помощью префиксов $Package, $Project и $ServerOption можно указывать на параметры пакета, проекта и сервера соответственно. Параметр пакета по умолчанию.

    Ниже представлен пример выполнения пакета и предоставления значения myvalue параметру проекта (myparam) и целочисленного значения 12 для другого параметра пакета (anotherparam).

    Dtexec /isserver "SSISDB\MyFolder\MyProject\MyPackage.dtsx" /server "." /parameter $Project::myparam;myvalue /parameter anotherparam(int32);12

    С помощью параметров также можно установить свойства диспетчера соединений. Для обозначения параметра диспетчера соединений используется префикс CM.

    В следующем примере свойство InitialCatalog диспетчера соединений SourceServer установлено в значение ssisdb.

    /parameter CM.SourceServer.InitialCatalog;ssisdb  
    

    В следующем примере в качестве значения свойства ServerName диспетчера соединений SourceServer задана точка (.), чтобы указать локальный сервер.

    /parameter CM.SourceServer.ServerName;.  
    
  • /Proj[ect] ProjectFile: (необязательно). Указывает проект, из которого необходимо извлечь выполняемый пакет. Аргумент ProjectFile указывает имя файла ISPAC. Этот параметр используется в основном при выполнении пакета из Visual Studio.

  • /Rem comment: (необязательно). Содержит примечания о командной строке или командных файлах. Аргумент не обязателен. Значение comment является строкой, которая должна либо быть заключена в кавычки, либо не содержать пробелов. Если аргумент не указан, вставляется пустая строка. Значенияcomment удаляются на стадии считывания команд.

  • /Rep[orting] level [; event_guid_or_name[; event_guid_or_name[...]]: (необязательно). Определяет, какие типы сообщений включаются в отчет. Ниже приводятся доступные параметры отчета для level .

    N — отчет не выводится.

    E — выводятся сообщения об ошибках.

    W — выводятся предупреждения.

    I — выводятся информационные сообщения.

    C — выводятся сообщения о пользовательских событиях.

    D — выводятся сообщения о событиях задачи потока данных.

    P — отображается ход процесса выполнения.

    V — отображаются подробные сообщения.

    Аргументы V и N являются взаимоисключающими по отношению ко всем остальным аргументам, их следует указывать отдельно. Если параметр /Reporting не указан, то по умолчанию используются значения E (ошибки), W (предупреждения) и P (ход выполнения).

    В начале всех событий ставится отметка времени в формате «ГГ/ММ/ДД ЧЧ:ММ:СС», а также идентификатор GUID или понятное имя, если такое имеется.

    Необязательный параметр event_guid_or_name является списком исключений для регистраторов. Это исключение указывает события, которые не регистрируются, но могут быть зарегистрированы иным образом.

    Не нужно исключать событие, если обычно оно не регистрируется по умолчанию.

  • /Res[tart] {deny | force | ifPossible} (необязательный). Определяет новое значение свойства CheckpointUsage пакета. Параметры имеют следующие значения.

    Deny . Задает для свойства CheckpointUsage значение DTSCU_NEVER.

    Force . Задает для свойства CheckpointUsage значение DTSCU_ALWAYS.

    ifPossible . Задает для свойства CheckpointUsage значение DTSCU_IFEXISTS.

    Если значение не указано, используется значение по умолчанию force .

  • /Set [$Sensitive::]propertyPath;value(необязательный). Переопределяет конфигурацию параметра, переменной, свойства, контейнера, регистратора, перечислителя Foreach или соединения в пакете. При использовании этот параметра /Set заменяет значение аргумента propertyPath на указанное значение. Можно указать несколько параметров /Set .

    Параметр /Set можно использовать не только с параметром /F[ile]. Параметр /Set можно также использовать с параметром /ISServer или /Project. Параметр /Set, используемый с параметром /Project, задает значения параметров. При использовании /Set с /ISServer, /Set устанавливает переопределения свойств. Кроме того, при использовании /Set с /ISServer можно использовать необязательный префикс $Sensitive, чтобы указать, что свойство должно рассматриваться как конфиденциальное на сервере служб Integration Services.

    Вы можете определить значение propertyPath , запустив мастер настройки пакета. Пути для выбираемых элементов отображаются на последней странице Завершение работы мастера и могут быть скопированы в буфер обмена, а затем вставлены из него. Если мастер использовался только для этого, то его действия можно отменить после копирования путей в буфер.

    Ниже приведен пример выполнения пакета, хранящегося в файловой системе, и указания нового значения для переменной.

    dtexec /f mypackage.dtsx /set \package.variables[myvariable].Value;myvalue

    Ниже приведен пример запуска пакета из файла проекта ISPAC и установки параметров пакета и проекта.

    /Project c:\project.ispac /Package Package1.dtsx /SET \Package.Variables[$Package::Parameter];1 /SET \Package.Variables[$Project::Parameter];1

    С помощью параметра /Set можно изменить расположение, из которого загружаются конфигурации пакетов. Однако параметр /Set нельзя использовать для переопределения значения, указанного в конфигурации во время разработки. Сведения о применении конфигурации пакета см. в разделах Конфигурации пакета и Изменения в работе служб Integration Services в SQL Server 2016.

  • Сервер /Ser[ver]: (необязательно). Используется при указании параметра /SQL или /DTS . Этот параметр задает имя сервера, с которого происходит получение пакета. В случае отсутствия параметра /Server и указания параметра /SQL или /DTS производится попытка выполнения пакета на локальном сервере. Значение server_instance может быть заключено в кавычки.

    Параметр /Ser[ver] необходим при указании параметра /ISServer .

  • /SQ[L] package_path: загружает пакет, хранящийся в SQL Server, в базе данных msdb. Пакеты, которые хранятся в базе данных msdb , развертываются с помощью модели развертывания пакетов. Чтобы запустить пакеты, развернутые на сервере Служб Integration Services с помощью модели развертывания проекта, используйте параметр /ISServer . Дополнительные сведения о моделях развертывания пакетов и проектов см. в разделе Deployment of Projects and Packages.

  • Аргумент package_path задает имя извлекаемого пакета. Если папки включены в путь, они завершаются обратными косыми чертами ("\"). Значение package_path может быть заключено в кавычки. Если путь или имя файла, указанные в аргументе package_path , содержат пробел, то аргумент package_path необходимо заключить в кавычки.

    Параметры /User, /Passwordи /Server можно использовать совместно с параметром /SQL .

    В случае отсутствия параметра /User для доступа к пакету используется проверка подлинности Windows. Если вы используете параметр /User, указанное имя входа /User связано с проверкой подлинности SQL Server.

    Параметр /Password используется только совместно с параметром /User . В случае использования параметра /Password доступ к пакету осуществляется с применением указанных имени пользователя и пароля. При отсутствии параметра /Password будет использоваться пустой пароль.

    Внимание

    По возможности используйте аутентификацию Windows.

  • Если параметр /Server опущен, предполагается, что предполагается локальный экземпляр SQL Server по умолчанию.

    Параметр /SQL не может использоваться одновременно с параметром /DTS или /File . Если указано несколько параметров, то выполнение программы dtexec завершится с ошибкой.

  • /Su[m]\(необязательный). Выводит добавочный счетчик, содержащий количество строк, которые будут получены следующим компонентом.

  • /U[ser] user_name: (необязательно). Позволяет получить пакет, защищенный проверкой подлинности SQL Server. Этот параметр используется только в случае указания параметра /SQL . Значение user_name может быть заключено в кавычки.

    Внимание

    По возможности используйте аутентификацию Windows.

  • /Va[lidate](необязательный). Останавливает выполнение пакета по завершении стадии проверки без фактического запуска пакета. В режиме проверки указание параметра /WarnAsError приводит к тому, что программа dtexec рассматривает предупреждения как ошибки, поэтому выполнение пакета завершается с ошибкой в случае появления предупреждения в ходе проверки.

  • /VerifyB[uild] major[; minor[; build]]: (необязательно). Проверяет соответствие номера сборки пакета номерам сборки, указанным на стадии проверки в аргументах major, minorи build . В случае несоответствия пакет выполняться не будет.

    Тип значений — long integer. Аргумент может иметь одну из трех форм, причем значение major требуется всегда:

    • major

    • major;minor

    • major; minor; build

  • /VerifyP[ackageID] packageID: (необязательно). Проверяет идентификатор GUID выполняемого пакета, сравнивая его со значением, указанным в аргументе package_id .

  • /VerifyS[igned](необязательный). Вызывает проверку цифровой подписи пакета служб Integration Services. Если пакет не подписан или подпись недопустима, работа пакета завершается ошибкой. Дополнительные сведения см. в разделе Определение источника пакетов с помощью цифровых подписей.

    Внимание

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

    Примечание.

    Необязательное значение реестра BlockedSignatureStates может указать параметр, который является более строгим, чем параметр цифровой подписи, заданный в SQL Server Data Tools (SSDT) или в командной строке dtexec . В этом случае значение в реестре переопределяет другие параметры.

  • /VerifyV[ersionID] versionID: (необязательно). Проверяет версию идентификатора GUID выполняемого пакета, сравнивая его со значением, указанным в аргументе version_id на стадии проверки пакета.

  • /VLog [Filespec]: (необязательно). Все события пакета служб Integration Services записываются в регистраторы, включенные при разработке пакета. Чтобы службы Integration Services включили регистратор для текстовых файлов, и чтобы записывать события журнала в указанный текстовый файл, укажите путь и имя файла в качестве параметра Filespec .

    Если параметр Filespec не указан, службы Integration Services не включат регистратор для текстовых файлов. Службы Integration Services записывают события пакета только в регистраторы, включенные при разработке пакета.

  • /W[arnAsError](необязательный). Приводит к тому, что пакет рассматривает предупреждения в качестве ошибок, поэтому при наличии предупреждения в ходе проверки выполнение пакета завершается с ошибкой. В случае отсутствия предупреждений во время проверки подлинности и при отсутствии параметра /Validate происходит выполнение пакета.

  • /X86(необязательный). Вызывает агент SQL Server запускать пакет в 32-разрядном режиме на 64-разрядном компьютере. Этот параметр задается агент SQL Server при выполнении следующих условий:

    • Тип шага задания — Пакет служб SQL Server Integration Services.

    • Выбран параметр Использовать 32-разрядную среду выполнения на вкладке Параметры выполнения диалогового окна Создание шага задания .

    Этот параметр также можно задать для шага задания агент SQL Server с помощью хранимых процедур или объектов управления SQL Server (SMO) для программного создания задания.

    Этот параметр используется только агент SQL Server. При запуске программы dtexec из командной строки этот параметр игнорируется.

Замечания

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

  • Параметры обрабатываются в порядке их обнаружения в командной строке. Командные файлы считываются, если они обнаружены в командной строке. Команды в этих файлах также обрабатываются в порядке их следования.

  • Если в одной и той же инструкции командной строки один и тот же параметр или переменная указаны более одного раза, то преимущество имеет последний из параметров.

  • Параметры/Set и /ConfigFile обрабатываются в том порядке, в котором они указаны.

Примеры

В следующих примерах показано, как использовать служебную программу командной строки dtexec для настройки и выполнения пакетов СЛУЖБ SQL Server Integration Services.

Запуск пакетов

Чтобы выполнить пакет служб SSIS, сохраненный в SQL Server с помощью проверки подлинности Windows, используйте следующий код:

dtexec /sq pkgOne /ser productionServer  

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

dtexec /dts "\File System\MyPackage"  

Чтобы проверить пакет, использующий проверку подлинности Windows и сохраненный в SQL Server без выполнения пакета, используйте следующий код:

dtexec /sq pkgOne /ser productionServer /va  

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

dtexec /f "c:\pkgOne.dtsx"   

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

dtexec /f "c:\pkgOne.dtsx" /l "DTS.LogProviderTextFile;c:\log.txt"  

Чтобы выполнить пакет, использующий проверку подлинности Windows и сохраненный в локальном экземпляре SQL Server по умолчанию, и проверьте версию перед выполнением, используйте следующий код:

dtexec /sq pkgOne /verifyv {c200e360-38c5-11c5-11ce-ae62-08002b2b79ef}  

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

dtexec /f "c:\pkgOne.dtsx" /conf "c:\pkgOneConfig.cfg"  

Примечание.

Аргументы package_path и filespec параметров /SQL, /DTS и /FILE должны быть заключены в кавычки, если путь или имя файла содержит пробел. Если аргумент не заключен в кавычки, он не может содержать пробелы.

Параметр ведения журнала

Предположим, что существуют три типа входных записей журнала: A, B и C. При указании следующего параметра ConsoleLog без параметров будут отображаться все три типа записей со всеми полями:

/CONSOLELOG  

Следующий параметр отображает все типы журналов, но только со столбцами «Имя» и «Сообщение»:

/CONSOLELOG NM  

Следующий параметр отображает все столбцы, но только для записей журнала типа A:

/CONSOLELOG I;LogEntryTypeA  

Следующий параметр отображает записи журнала только типа А со столбцами «Имя» и «Сообщение»:

/CONSOLELOG NM;I;LogEntryTypeA  

Следующий параметр отображает записи журнала типов А и B:

/CONSOLELOG I;LogEntryTypeA;LogEntryTypeB  

Те же результаты можно получить с использованием нескольких параметров ConsoleLog :

/CONSOLELOG I;LogEntryTypeA /CONSOLELOG I;LogEntryTypeB  

Если параметр ConsoleLog используется без параметров, отображаются все поля. Включение параметра list_options приводит к отображению только записей журнала типа A со всеми полями:

/CONSOLELOG NM;I;LogEntryTypeA /CONSOLELOG  

В следующем примере отображаются все записи журнала за исключением записей типа А. Т. е. отображаются записи журнала типов B и C:

/CONSOLELOG E;LogEntryTypeA  

В следующем примере те же результаты достигаются с использованием нескольких параметров ConsoleLog и единственного исключения:

/CONSOLELOG E;LogEntryTypeA /CONSOLELOG  
/CONSOLELOG E;LogEntryTypeA /CONSOLELOG E;LogEntryTypeA  
/CONSOLELOG E;LogEntryTypeA;LogEntryTypeA  

Следующий пример не отображает сообщения журнала, поскольку если тип файла журнала присутствует одновременно в списке исключения и списке включения, то этот тип файлов исключается.

/CONSOLELOG E;LogEntryTypeA /CONSOLELOG I;LogEntryTypeA  

Параметр SET

В следующем примере показано использование параметра /SET , который позволяет изменять значение любого свойства или переменной пакета при запуске пакета из командной строки.

/SET \package\DataFlowTask.Variables[User::MyVariable].Value;newValue  

Параметр проекта

В следующем примере показано, как использовать параметры /Project и /Package .

/Project c:\project.ispac /Package Package1.dtsx  

В следующем примере показано, как использовать параметры /Project и /Package для установки параметров пакета и проекта.

/Project c:\project.ispac /Package Package1.dtsx /SET \Package.Variables[$Package::Parameter];1 /SET \Package.Variables[$Project::Parameter];1  
  

Параметр ISServer

В следующем примере показано, как использовать параметр /ISServer .

dtexec /isserver "\SSISDB\MyFolder\MyProject\MyPackage.dtsx" /server "."  

В следующем примере показано, как использовать параметр /ISServer и устанавливать параметры пакета и диспетчера соединений.

/Server localhost /ISServer "\SSISDB\MyFolder\Integration Services Project1\Package.dtsx" /Par "$Project::ProjectParameter(Int32)";1 /Par "CM.SourceServer.InitialCatalog";SourceDB