2009-07-15 4 views
1

Я довольно новым для SSIS,SSIS Выберите значение из таблицы без поиска

Я импорт из XLS таблицы в таблицу базы данных. По пути я хочу выбрать запись из таблицы, но это НЕ поиск, т. Е. Прямой SELECT без соединения с источником ввода. Затем я хочу объединить это вместе с другими строками из XLS.

Каков наилучший способ для этого? Переменные? Команды OLE DB?

Благодаря

ответ

0

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

Вы также можете использовать преобразование слияния с внешним условием объединения, а не внутреннее соединение.

0

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

В этом случае я бы рассмотрел возможность использования задачи Execute SQL Task в потоке управления для извлечения записи и сохранения ее в переменной. Вы можете использовать компонент сценария в потоке данных, чтобы скопировать значения в записи из переменной в соответствующие поля в каждой строке. Это будет означать, что данные поиска извлекаются только один раз, а не один раз для строки, которая медленна, как указано в jn29098.

Если целью вашего потока данных является та же самая база данных, что и та, из которой вы извлекаете запись «lookup», вы также можете рассмотреть возможность выполнения задачи SQL Execute (в потоке управления), чтобы добавить значения поиска один раз данные электронной таблицы поступают в базу данных (после завершения потока данных). Это было бы намного более эффективно.