将查询参数映射到执行 SQL 任务中的变量

本主题介绍如何在执行 SQL 任务中使用参数化 SQL 语句,并在 SQL 语句中的变量和参数之间创建映射。

若要详细了解执行 SQL 任务、参数标记和用于不同连接类型的参数名称,请参阅 执行 SQL 任务中的“执行 SQL 任务 ”和 “参数”和“返回代码”。

将查询参数映射到变量

  1. 在 SQL Server Data Tools (SSDT)中,打开要使用的 Integration Services 包。

  2. 在解决方案资源管理器中,双击该包将其打开。

  3. 单击 “控制流” 选项卡。

  4. 如果该包尚未包括执行 SQL 任务,则向该包的控制流中添加一个此类任务。 有关详细信息,请参阅 在控制流中添加或删除任务或容器
    .

  5. 双击执行 SQL 任务。

  6. 以下列方式之一提供参数化 SQL 命令:

    • 在 SQLStatement 属性中使用直接输入并键入 SQL 命令。

    • 使用直接输入,单击 “生成查询”,然后使用查询生成器提供的图形工具创建 SQL 命令。

    • 使用文件连接,然后引用包含该 SQL 命令的文件。

    • 使用变量,然后引用包含该 SQL 命令的变量。

    参数化 SQL 语句中使用的参数标记取决于执行 SQL 任务所使用的连接类型。

    连接类型 参数标记
    ADO ?
    ADO.NET 和 SQLMOBILE @<参数名称>
    ODBC ?
    EXCEL 和 OLE DB ?

    下表按连接管理器类型列出了 SELECT 命令的示例。 参数在 WHERE 子句中提供筛选值。 这些示例使用 SELECT 从 AdventureWorks2012中的 Product 表中返回产品,其 ProductID 大于和小于两个参数指定的值。

    连接类型 SELECT 语法
    EXCEL、ODBC 和 OLEDB SELECT* FROM Production.Product WHERE ProductId > ? AND ProductID < ?
    ADO SELECT* FROM Production.Product WHERE ProductId > ? AND ProductID < ?
    ADO.NET SELECT* FROM Production.Product WHERE ProductId > @parmMinProductID AND ProductID < @parmMaxProductID

    有关将参数用于存储过程的示例,请参阅 执行 SQL 任务中的参数和返回代码

  7. 单击 “参数映射”

  8. 若要添加参数映射,请单击 “添加”

  9. “参数名称” 框中提供名称。

    所使用的参数名称取决于执行 SQL 任务所使用的连接类型。

    连接类型 参数名称
    ADO Param1, Param2, …
    ADO.NET 和 SQLMOBILE @<参数名称>
    ODBC 1, 2, 3, …
    EXCEL 和 OLE DB 0, 1, 2, 3, …
  10. “变量名称” 列表中选择变量。 有关详细信息,请参阅 添加、删除、更改包中用户定义变量的作用域

  11. “方向” 列表中指定该参数是输入、输出还是返回值。

  12. “数据类型” 列表中,设置该参数的数据类型。

    重要

    参数的数据类型必须与变量的数据类型兼容。

  13. 对 SQL 语句中的每个参数重复步骤 8 到 11。

    重要

    参数映射的顺序必须与参数在 SQL 语句中出现的顺序相同。

  14. 单击 “确定”

另请参阅

执行 SQL 任务
执行 SQL 任务中的参数和返回代码
Integration Services (SSIS) 变量