SSIS SELECT VALUE из таблицы без поиска - PullRequest
1 голос
/ 15 июля 2009

Я довольно новичок в SSIS,

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

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

Спасибо

Ответы [ 2 ]

0 голосов
/ 08 декабря 2009

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

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

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

0 голосов
/ 15 июля 2009

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

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

...