本主题介绍如何在执行 SQL 任务中使用参数化 SQL 语句,并在 SQL 语句中的变量和参数之间创建映射。
若要详细了解执行 SQL 任务、参数标记和用于不同连接类型的参数名称,请参阅 执行 SQL 任务中的“执行 SQL 任务 ”和 “参数”和“返回代码”。
将查询参数映射到变量
- 在 SQL Server Data Tools (SSDT)中,打开要使用的 Integration Services 包。 
- 在解决方案资源管理器中,双击该包将其打开。 
- 单击 “控制流” 选项卡。 
- 如果该包尚未包括执行 SQL 任务,则向该包的控制流中添加一个此类任务。 有关详细信息,请参阅 在控制流中添加或删除任务或容器 
 .
- 双击执行 SQL 任务。 
- 以下列方式之一提供参数化 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 任务中的参数和返回代码。 
- 单击 “参数映射” 。 
- 若要添加参数映射,请单击 “添加” 。 
- 在 “参数名称” 框中提供名称。 - 所使用的参数名称取决于执行 SQL 任务所使用的连接类型。 - 连接类型 - 参数名称 - ADO - Param1, Param2, … - ADO.NET 和 SQLMOBILE - @<参数名称> - ODBC - 1, 2, 3, … - EXCEL 和 OLE DB - 0, 1, 2, 3, … 
- 从 “变量名称” 列表中选择变量。 有关详细信息,请参阅 添加、删除、更改包中用户定义变量的作用域。 
- 在 “方向” 列表中指定该参数是输入、输出还是返回值。 
- 在 “数据类型” 列表中,设置该参数的数据类型。 - 重要 - 参数的数据类型必须与变量的数据类型兼容。 
- 对 SQL 语句中的每个参数重复步骤 8 到 11。 - 重要 - 参数映射的顺序必须与参数在 SQL 语句中出现的顺序相同。 
- 单击 “确定” 。