SSIS Выбор имени столбца динамически на основе строк из другой таблицы - PullRequest
0 голосов
/ 11 июня 2018

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

Пример: у меня есть таблица A, в которой у меня есть имена столбцов, которые я хочу запросить.Поэтому я хочу запросить столбцы в таблице B о том, что имена хранятся в таблице A.

Я нашел способ сделать это в запросе SQL, но я не знаю, как это сделать в SSIS.

DECLARE @columnList VARCHAR(MAX),@sql VARCHAR(MAX)

SELECT @columnList = COALESCE(@columnList+',' ,'') + columnName
FROM [dbo].[tableA]


SET @sql = 'SELECT ' + @columnList + ' FROM dbo.TableB'

EXEC(@sql)

Есть предложения?

Спасибо

1 Ответ

0 голосов
/ 11 июня 2018

Используйте задачу «Выполнение SQL» для запроса таблицы A и заполните переменную пакета строкового типа строкой SQL-запроса, используя имена столбцов, хранящиеся там.Код, который вы только что добавили в свой вопрос, подойдет, но вместо выполнения переменной @sql вы возвращаете ее в задачу «Выполнение SQL» и заполняете ее переменной.

Затем в потоке данных используйте ««Запрос из переменной» для компонента Source и выполните запрос, сохраненный в вашей строковой переменной.

РЕДАКТИРОВАТЬ: При дальнейшей проверке вашей цели, я должен сказать, что невозможно создать поток данных, где столбцы могутменять.Метаданные потока данных создаются во время создания пакета и не могут быть изменены во время выполнения.

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