Можно ли вызвать ошибку в потоке данных служб Integration Services, чтобы продемонстрировать ее откат? - PullRequest
0 голосов
/ 27 мая 2010

Мне было поручено продемонстрировать, как службы Integration Services обрабатывают ошибку во время потока данных, чтобы показать, что никакие данные не попадают в пункт назначения. Это существующий пакет, и я хочу максимально ограничить изменения кода в пакете (поскольку это, скорее всего, разовая сделка).

Сценарий, который пытается понять, - это «системный» сбой - исходный файл исчезает в середине потока или файловый сервер теряет питание и т. Д.

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

Полагаю, я мог бы добавить задачу «Преобразование скрипта», найти определенное значение и выдать ошибку, но я надеялся, что кто-то придумал что-то более простое / более элегантное.

Спасибо

Мэтт

Ответы [ 4 ]

0 голосов
/ 02 июня 2010

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

0 голосов
/ 01 июня 2010

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

0 голосов
/ 02 июня 2010

Можем ли мы попробовать использовать свойство уровня транзакции пакета?

При сбое потока данных он вернет все данные из цели.

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

0 голосов
/ 27 мая 2010

испортите файл, который вы пытаетесь импортировать, вставив некоторые неверные данные или сохранив их в другом формате, например UTF-8, или что-то в этом роде

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...