Как создать динамический запрос IN в SSIS 2008? - PullRequest
0 голосов
/ 06 октября 2010

У меня есть переменная @csv, которая содержит значение через запятую, например: -a -a, б -a, B, C

Мне нужно передать его в запросе в моем источнике OLE DB в потоке данных, чтобы создать запрос, такой как:

ВЫБРАТЬ СЧЕТ (1) ИЗ таблицы ГДЕ col1 IN @ csv

Так что если @ csv = "a, b", то внутренне это должно разрешиться в

ВЫБРАТЬ СЧЕТ (1) ИЗ таблицы ГДЕ col1 IN 'a', 'b'

Как этого лучше всего достичь в SSIS 2008? Можно ли избежать компонента сценария для создания динамического запроса и сохранения его в переменной?

Ответы [ 2 ]

1 голос
/ 10 мая 2014

Вы можете создать переменную для хранения запроса и составить его значение, используя выражение, например:

imageenter image description here">

Список переменных:

enter image description here

Вариант 1: В случае использования OLE DB выберите SQL Command from variable и свяжите переменную @sqlQuery: enter image description here

Вариант 2: В случае использования ADO.NET , перейдите в свойства задачи потока данных и разверните Expressions и свяжите ADO.NET Source> SqlCommand с переменной @sqlQuery +. ADO.NET Source > Data access mode является SQL Command: enter image description here enter image description here

Вариант 3: В случае использования Execute SQL Task разверните Expressions и свяжите SqlStatementSource с переменной @sqlQuery +. Убедитесь, что SQL Source Type является Direct Input: enter image description here

1 голос
/ 06 октября 2010

Как этого лучше всего достичь в SSIS 2008?Могу ли я избежать, чтобы компонент сценария создавал динамический запрос и сохранял его в переменной?

Самый простой / лучший способ по-прежнему был бы с компонентом сценария.

В противном случае вы могли бы:

  1. используйте csv в качестве источника данных и выберите свой результат
  2. используйте инструмент "Добавить столбец", чтобы добавить остальную часть вашего SQL-запроса вокруг результата
  3. сохранить результат в переменную
  4. Затем использовать источник данных OLE DB с «запросом из переменной»
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...