Краткий ответ: №.
Длинный ответ:
Ну, это все еще нет . Но я постараюсь объяснить, почему. На сегодняшний день, когда вы запускаете запрос, ядро БД требует знать структуру результирующего набора (количество столбцов, имена столбцов, типы данных и т. Д.), Которые запрос будет возвращать. Следовательно, вы должны определить структуру результирующего набора при запросе данных из БД. Подумайте об этом: вы когда-нибудь выполняли запрос, в котором заранее не знали бы структуру набора результатов?
Это также применяется, даже когда вы делаете select *
, что является просто синтаксисом сахара. В конце возвращаемая структура - «все столбцы в таких таблицах».
Собирая строку, вы динамически генерируете желаемую структуру, прежде чем запрашивать набор результатов. Вот почему это работает.
Наконец, вы должны знать, что динамическая сборка строки может теоретически и потенциально (хотя и маловероятно) получить набор результатов с бесконечными столбцами. Конечно, это невозможно и не удастся, но я уверен, что вы поняли последствия.
Обновление
Я нашел это, что подтверждает причины, по которым оно не работает.
Здесь
Служба SSIS полагается на предварительное знание метаданных потока данных и
Динамический поворот (что вам нужно) не совместим с
что.
Я буду продолжать искать и добавлять сюда.