DTS - проблема с полностью определенными именами таблиц - PullRequest
0 голосов
/ 04 марта 2011

У меня есть пакет SQL DTS, работающий в базе данных SQL Server 2005, который по большей части работает правильно.Однако иногда происходит сбой, и я не могу понять, почему.

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

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

Единственное различие, которое я вижу между периодически сбойной задачей и всеми другими задачами преобразования данных, - это свойство Имя таблицы для Назначения - оно полностью определено, т.е.MyDatabase.dbo.TempTable, тогда как для всех других задач просто указано имя таблицы как TempTable.Я понятия не имею, почему этот отличается или как это исправить.Я предполагаю, что это проблема, поскольку единственная вещь, которая, кажется, отличается между этой одной задачей и всеми остальными.

Кроме того, если я вручную выполню первый шаг DTS, чтобы создать временнуютаблиц перед выполнением пакета в полном объеме, он всегда работает.

Может кто-нибудь пролить свет на то, в чем может быть проблема, или как я могу отменить имя таблицы назначения?

Спасибо

Ответы [ 3 ]

1 голос
/ 04 марта 2011

Поскольку он периодически прерывается, проблема в том, что он использует полное имя, вряд ли будет проблемой. Я подозреваю, что проблема заключается в каком-то шаге над ним, и поэтому таблица никогда не создается. Или эта таблица создана с использованием оператора select into, а не таблицы создания? Если это так и нет записей для выбора, это может привести к прерывистой проблеме, подобной этой.

Разные люди запускают пакет под разными учетными записями пользователей, а не на работе? Возможно, у человека нет прав на создание таблицы в этой схеме.

1 голос
/ 04 марта 2011

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

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

0 голосов
/ 08 марта 2011

Я выяснил, в чем проблема!Оказывается, что свойства рабочего процесса для сбойной задачи были неправильными и не указали задачу «Создать временные таблицы» в качестве предварительного условия, поэтому время от времени задача выполнялась до создания связанной целевой таблицы.Это случалось не часто, поскольку таблица создавалась второй, поэтому обычно присутствовала перед выполнением следующей задачи.Все остальные задачи имели правильные свойства рабочего процесса, но по какой-то причине это было пропущено.

...