DTS — ручное выполнение шага дает другие результаты, чем простое нажатие кнопки «Выполнить».

У меня есть пакет DTS (не SSIS), к которому не прикасались годами, и мне пришлось обновить запрос. Когда я запускаю пакет, вручную выполняя каждый шаг в редакторе, все работает нормально и генерирует файл из пары тысяч записей, как и ожидалось. Когда я нажимаю кнопку «Выполнить» в верхней части редактора, чтобы запустить весь пакет, ошибка не возникает, но файл создается только с одной записью.

Все задачи внутри пакета являются либо этапами преобразования, либо задачами Sql. Нет никаких задач сценария ActiveX. Когда я наблюдаю за процессом, когда он выполняет шаги сам по себе, выполнение правильно следует сопоставлению.

Я в недоумении по этому поводу. Кто-нибудь видел эту проблему раньше или знает, с чего начать?


person JamesEggers    schedule 01.09.2009    source источник
comment
Существуют ли какие-либо переменные пакета, которые во время выполнения могут переопределять используемые локальные значения?   -  person John Sansom    schedule 01.09.2009
comment
Существует 1 задача динамических свойств, которая динамически устанавливает строку подключения; однако я подтвердил, что это правильно установлено в обоих сценариях.   -  person JamesEggers    schedule 01.09.2009


Ответы (2)


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

Вы также можете проверить любой шаг сценария ActiveX, который изменяет строку подключения или назначение шагов Data Pump. У меня были случаи, когда они отличались на целевом сервере, на котором выполняются пакеты DTS.

person Hector Sosa Jr    schedule 01.09.2009
comment
Я проверил все строки подключения и разрешения, и все кажется правильным в каждом сценарии. Я также переназначил все пути и все еще хорошо. Выходной каталог сгенерированного файла имеет полный доступ для локальных пользователей. Пробовал на двух разных системах, на обоих ситуация одинаковая. Файл создается как последний шаг, и я могу повторно запустить только этот шаг после того, как он сгенерирует файл с 1 записью и получит все 20 000+ записей, как и должно быть. - person JamesEggers; 01.09.2009

После просмотра всех строк всех хранимых процедур и прямых задач sql, используемых в пакете, я нашел SET ROWCOUNT 1, который никогда не сбрасывался. Пока я вручную выполнял каждый шаг отдельно, RowCount автоматически сбрасывался; однако, когда он запускался как полный пакет, RowCount никогда не сбрасывался. Добавление SET ROWCOUNT 0 в конце конкретного скрипта решило эту проблему.

person JamesEggers    schedule 01.09.2009
comment
Вау, это откровение. Такие мелочи, как то, что сводит меня с ума от пакетов DTS. - person Hector Sosa Jr; 02.09.2009