本主题介绍如何在执行 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 语句中出现的顺序相同。
单击 “确定” 。