Управление записями в SSIS - PullRequest
2 голосов
/ 22 марта 2010

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

Если я использую наборы записей в SSIS для этой цели, возникают другие проблемы.Насколько я понимаю, компонент «Выполнение SQL» будет повторно инициализировать набор записей при запуске, поэтому я не могу использовать его для добавления дополнительной строки.Есть ли способ создать соединение OLE DB, которое ссылается на набор записей в памяти?

Есть ли лучший способ достичь этого результата?

1 Ответ

2 голосов
/ 23 марта 2010

Есть лучший способ.Я бы предложил использовать временную таблицу, как вы сказали, что вы пытались / рассматривали.Ключи к использованию временной таблицы с службами SSIS: 1. Необходимо установить для свойства «сохранить то же соединение» значение true в диспетчере соединений, в противном случае «умное» управление соединением и пул в конечном итоге приведут к разрыву соединения (и его восстановлению)без временной таблицы) на полпути через ваш пакет.2. Вам необходимо создать свой пакет с уже созданной временной таблицей - даже если вам нужно создать его как обычную таблицу для того, чтобы с ней работать.Когда вы будете готовы к развертыванию, измените имена таблиц в компонентах, которые к ним относятся, и установите для свойства DelayValidation этих задач значение False.(Это предотвратит сбой пакета, потому что таблица не существует при первоначальном запуске пакета.)

...