powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / быстрое завершение dtexec
4 сообщений из 4, страница 1 из 1
быстрое завершение dtexec
    #39599445
нуб987
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В конце длиной процедуры нужно запустить выполнение пакета, который отрабатывает примерно за полтора часа (обновление олап-базы).
Выполняю примерно такой код:
Код: sql
1.
2.
3.
4.
5.
6.
declare
   @res int
   , @cl varchar(1000)

set @cl = 'dtexec .....'
exec @res = xp_cmdshell @cl



Он завершается успешно (@res = 0) и всего за секунду.
Но зайдя в отчёты выполнения пакетов, видно, что он ещё выполняется. И только примерно через полтора часа в этих отчётах написано, что пакет завершён успешно.

Почему dtexec выдает результат раньше времени?
...
Рейтинг: 0 / 0
быстрое завершение dtexec
    #39599449
Фотография alexeyvg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
нуб987Почему dtexec выдает результат раньше времени?Может, он запускает что то, и завершает работу, не дождавшись запущенного?
Что происходит, если запустить dtexec с теми же параметрами без xp_cmdshell?
...
Рейтинг: 0 / 0
быстрое завершение dtexec
    #39599502
dao
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вообщет @res = 0 вам возвращает xp_cmdshell а не dtexec ))
...
Рейтинг: 0 / 0
быстрое завершение dtexec
    #39599538
Minamoto
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
нуб987,

By default, the process runs asynchronously – the package execution is scheduled on the server, and DTEXEC returns immediately. DTEXEC does not wait for the package execution to complete. In this case, %ERRORLEVEL% would represent whether the package execution was created successfully, and will not reflect the result of the execution.

To get the result of the package execution, you can set the $ServerOption::SYNCHRONIZED property to True. In this mode, DTEXEC will wait for the package execution to complete. If the execution was successful, the %ERRORLEVEL% will be set to 0. If it failed, it will be set to 1.
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / быстрое завершение dtexec
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]