Sql server 2008 如何在SSIS 2008中创建动态IN查询?

Sql server 2008 如何在SSIS 2008中创建动态IN查询?,sql-server-2008,ssis,Sql Server 2008,Ssis,我有一个变量@csv,它包含一个逗号分隔的值,例如: -a -a、 b -a、 b,c 我需要在数据流中的OLE DB源中的查询中传递它,以创建查询,例如: 从表格中选择计数(1),其中col1位于@csv中 因此,如果@csv=“a,b”,那么在内部它应该解析为 从col1位于“a”和“b”中的表中选择COUNT(1) 如何在SSIS 2008中最好地实现这一点?我可以避免脚本组件创建动态查询并将其存储在变量中吗 如何在SSIS中最好地实现这一点 2008? 我可以避免使用脚本组件吗 创建动态

我有一个变量@csv,它包含一个逗号分隔的值,例如: -a -a、 b -a、 b,c

我需要在数据流中的OLE DB源中的查询中传递它,以创建查询,例如:

从表格中选择计数(1),其中col1位于@csv中

因此,如果@csv=“a,b”,那么在内部它应该解析为

从col1位于“a”和“b”中的表中选择COUNT(1)

如何在SSIS 2008中最好地实现这一点?我可以避免脚本组件创建动态查询并将其存储在变量中吗

如何在SSIS中最好地实现这一点 2008? 我可以避免使用脚本组件吗 创建动态查询并存储 它是一个变量吗

最简单/最好的方法仍然是使用脚本组件

否则,您可以:

  • 使用csv作为数据源并选择结果
  • 使用和“添加列”工具围绕结果添加SQL查询的其余部分
  • 将结果存储到变量中
  • 然后将OLE DB数据源与“查询自变量”一起使用

  • 您可以创建一个变量来存储查询,并使用表达式组合其值,如:

    在此处输入图像描述“>

    变量列表:

    选项1:如果使用OLE DB,请从变量中选择
    SQL命令并绑定变量@sqlQuery:
    

    选项2:如果使用ADO.NET,请转到数据流任务的属性,展开
    表达式
    ,并使用变量@sqlQuery+绑定ADO.NET Source>SqlCommand,确保
    ADO.NET Source>数据访问模式
    SQL命令

    选项3:如果使用
    执行SQL任务
    ,请展开
    表达式
    ,并将SqlStatementSource与变量@sqlQuery+绑定,确保
    SQL源类型
    是直接输入