在执行 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) 变量