2016-11-30 8 views
0

Это больше общего вопроса:Выполнение SQL задачи (SSIS), а затем вставьте результирующий набор в виде таблицы на другом сервере

У меня есть file1.sql, file2.sql, file3.sql в папке , Я могу запустить контейнер foreach, чтобы перебирать файлы и выполнять его, но мне нужен набор результатов для перехода к соответствующим таблицам, сидящим на другом сервере.

file1 result set -> Server2.TableA file2 result set -> Server2.TableB .. и т. Д.

Как это можно достичь с помощью методов SSIS?

+0

SSIS не работает таким образом. Результаты выполнения Execute SQL Task не могут быть отправлены в пункт назначения. Вы ищете задачу потока данных, но, как я сказал [здесь] (http://stackoverflow.com/q/40893543/181965), они должны быть связаны во время разработки. – billinkc

+0

Я думаю, что это можно сделать, но нам нужна дополнительная информация. Ты можешь ответить? Вы перебираете файлы .sql и выполняете sql внутри? .sql - это выбранные запросы? У вас есть ForEach Loop с Execute SQL Task внутри? Не использовать DataFlows? Можете ли вы опубликовать изображение своей петли? Вы упоминаете разные серверы, но ваш пример показывает разные таблицы, один и тот же сервер. Нам нужно уточнить. Возможно, это можно сделать с помощью переменных. –

ответ

1

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

1

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

На этом этапе вы можете выполнить любую очистку данных.

Затем создайте отдельный поток данных для каждого сервера, чтобы захватить необработанные записи для этого сервера. После их отправки отметьте записи как обработанные.

Это будет работать, если у вас будет только несколько серверов. Если есть много возможностей или вы ожидаете, что число будет продолжать меняться, я бы пошел с предложением @ TabAlleman.

0

thestralFeather,

Если вы новичок в SSIS, обратитесь к обучающей программе MSDN на зацикливание с использованием SSIS here. Если вы посмотрите на страницу this в учебнике, вы увидите в потоке данных выходное место назначения. @Tab Allerman и @HLGEM предоставили хороший совет. Когда вы смотрите на страницы, на которые я ссылался, просто с точки зрения двух отдельных циклов, отбрасывающих данные в одно место, которое вы можете управлять в целевом потоке данных.