SSIS 中的执行 SQL 任务运行包中的查询(语句)或存储过程。您可以使用此执行 SQL 任务编写可以按顺序运行的单个或多个语句。
我们可以将此 SSIS 执行 SQL 任务用于以下目的
- 创建、修改和删除 表 和 视图。
- 在开始将数据插入表中之前,我们可以使用此 SSIS 执行 SQL 任务来截断表或视图。
- 在将数据加载到维度表和事实表之前,重新创建(删除并创建)它们。
- 运行存储过程。
- 将结果集保存在变量中,以便在其他任务中使用该数据。
SSIS 中执行 SQL 任务的属性
本文将通过示例向您展示在 SSIS 中配置执行 SQL 任务的步骤。首先,将“执行 SQL 任务”从工具箱拖放到“控制流”区域。

双击它将打开编辑器以进行配置。
常规选项卡
此选项卡用于配置 SSIS 执行 SQL 任务属性。
- 名称:请提供唯一的名称
- Description: 简要描述任务功能。提供有效的描述始终是良好实践。
在实际操作中,请将 SSIS 执行 SQL 任务的名称更改为适当的名称,并编写描述来解释任务功能。描述有助于其他开发人员更好地理解 SSIS 任务。
此页面完全专注于执行单个查询。但是,将执行 SQL 任务与 Foreach 循环结合使用可以同时运行多个查询。请参阅执行 SQL 任务以 运行多个 Transact 查询文件。

SSIS 执行 SQL 任务选项卡。
- TimeOut (in seconds): 请以秒为单位指定连接超时。如果连接花费的时间超过该时间,则连接将失败。默认值为 0,表示无限秒。
- CodePage: 请指定任务在将 Unicode 值转换为变量时要使用的代码页。默认情况下,它将使用本地计算机的代码页。
- Type Conversion Mode: 默认情况下为“允许”,这意味着执行 SQL 任务将尝试将查询结果和输出参数转换为变量的数据类型。

Connection Type
请选择您要用于数据源的 连接管理器。通过单击下拉箭头,您可以看到 SSIS 中的执行 SQL 任务提供的可用连接类型。它们是 OLE DB、EXCEL、ODBC、ADO、ADO.NET 和 MOBILE。

Connection
为语句配置连接管理器设置。如果您已创建连接,请从列表中选择,或单击“新建连接…”以创建新连接。

Source Type
请指定您要如何提供源数据。此 SSIS 执行 SQL 任务提供三个选项。
- Direct Input: 如果要直接编写语句,请选择此选项。
- File Connection: 如果您的查询位于文件系统中,请选择此选项。有关示例,请参阅 使用文件连接的文章。
- Variable: 如果您的查询在一个变量中,请选择此选项。

下一个属性完全基于“Source Type”选项。例如,如果我们选择“文件系统”作为源类型,“File Connection”属性将变为。然后我们可以使用此属性来定位并选择文件。

例如,如果我们选择“Direct input”作为 SSIS 执行 SQL 任务的源类型,下一个属性将变为 SQL Statement。我们可以使用此属性来编写语句。为了演示,我们编写以下查询。
SELECT [Id]
,[FirstName]
,[LastName]
,[Education]
,[Occupation]
,[YearlyIncome]
,[Sales]
,[HireDate]
FROM [Employee Table]
WHERE [Sales] > ?

IsQueryStoredProcedure
只有当您选择 ADO 或 ADO.NET 作为连接类型时,此属性值才可用。如果您的查询是存储过程,请将属性值更改为 True。
Result Set
此 SSIS 执行 SQL 任务属性帮助我们配置输出。它有四个属性
- None: 如果您不想返回任何内容,请选择此选项。例如,您使用执行 SQL 任务来 截断表。那么返回任何值都没有意义。
- Single Row Result Set: 如果您想返回单个行结果集,您可以使用此选项 — 例如,表中的记录总数、列等。
- Full Result Set: 如果您想返回多于一个行的结果集,您可以使用此选项。
- XML: 如果您想将 XML 文件作为结果集返回,您可以使用此选项。

这是我们配置的执行 SQL 任务的最终外观。

SSIS 执行 SQL 任务参数映射选项卡
您必须使用此执行 SQL 任务参数映射选项卡来映射查询中指定的参数。如果您的查询中没有任何参数,请跳过此部分。
如果您观察到上面的语句,我们将 Sales 指定为查询 > ?。我们必须将值(或变量)传递给那个问号。因此,请单击“添加”按钮以添加结果集名称。

单击“添加”按钮后,它将允许您将变量映射到参数。

Variable Name: 此属性显示可用系统变量和用户变量(如果有)的列表;请选择适当的变量。如果您之前没有创建任何变量,请单击“新建变量…”如下所示。

Execute SQL Task Result Set Tab
您必须使用此 SSIS 执行 SQL 任务结果集选项卡来映射我们从查询中获得的结果。请记住,如果您将 Result set 属性指定为 None,此选项卡将被禁用。
请单击“添加”按钮以添加结果集名称。

在这里,
- Result Name: 请指定您要为结果集分配的有意义的名称。我建议您使用有意义的名称,因为我们将在后续与此任务连接的任务中使用它。
- Variable Name: 此属性显示可用的用户变量(如果有)的列表。请选择适当的变量。如果您之前没有创建任何变量,请单击“新建变量…” 。

Execute SQL Task Expressions Tab
用于编写表达式。

评论已关闭。