在 SSIS 中使用单个行集执行 SQL 任务

演示如何在 SSIS 中使用执行 SQL 任务从表中返回单个行集(或单行),并附有示例。它还演示了“结果集”选项“单个行集”。对于此 SSIS 执行 SQL 任务单个行集演示,我们将使用数据库中的 Employee 表

在我们开始使用 SSIS 中的执行 SQL 任务单个行集之前,让我向您展示我们将用于此示例的 Employee 表

Source Table 0

在 SSIS 中使用单个行集执行 SQL 任务

在此示例中,我们将使用执行 SQL 任务从 Employee 表中选择第一行,并在消息框中显示返回的单个行集。为此,请从 SSIS 工具箱将“执行 SQL 任务”拖放到设计器空间。

Execute SQL Task in SSIS Single Rowset 1

双击它将打开“执行 SQL 任务编辑器”进行配置。让我选择连接类型为 OLE DB 连接,它连接到数据库。接下来,我们将直接输入作为 SQL 语句,因此请单击 ...。

Execute SQL Task in SSIS Single Rowset 2

请在此处编写您的自定义语句。从下面的屏幕截图中可以看到,我们正在编写一个带有 TOP 子句的 Select 语句,以从表中选择第一行。

-- Execute SQL Task in SSIS Single Rowset Example
SELECT TOP 1 [FirstName]
      ,[LastName]
      ,[Education]
      ,[Occupation]
      ,[Sales]
      ,[HireDate]
  FROM [Employee]
Enter Query 3

请将“结果集”从“无”(默认)更改为“单行”,因为我们的 select 语句将返回一行。

Single ResultSet 4

让我们创建所需的变量来保存返回的记录。首先,关闭编辑器,然后右键单击设计器将打开上下文菜单。请选择“变量”选项。

Variables 5

从下面的屏幕截图中可以看到,我们创建了 7 个变量来保存 select 语句返回的七列。

Create Variables 6

接下来,转到“执行 SQL 任务编辑器”中的“结果集”选项卡,然后单击“添加”按钮为返回集分配变量。

Add Result Set for Execute in Single Rowset 7

从下面的屏幕截图中可以看到,我们将先前创建的变量分配给了语句返回的所有列。

Execute SQL Task in SSIS Single Rowset 8

我们已完成 SSIS 执行 SQL 任务单个行集配置。让我将返回的结果显示在消息框中。为此,请从工具箱将脚本任务拖放到“控制流”区域,并将 SSIS 执行 SQL 任务的输出添加到脚本任务。

Execute SQL Task in SSIS Single Rowset 9

双击脚本任务将打开以下编辑器来配置脚本任务组件。在这里,我们将所有用户定义的变量(我们之前创建的变量)选择为“读写”变量。

Script Editor for Execute in Single Rowset 10

选择所需的变量后,请单击“编辑脚本...”按钮以编写实际的 C# 或 VB 脚本

Edit Script 11

在这里,我们首先声明局部变量来保存我们正在从包中获取的用户定义的变量。接下来,我们将值与自定义文本(“姓名:”等)连接起来

我们在下面屏幕截图中使用的 C# 代码是

-- Execute SQL Task in SSIS Single Rowset Example
String FullName = "Name: " + Dts.Variables["FirstName"].Value.ToString() + " " + 
                             Dts.Variables["LastName"].Value.ToString();
String Occupation = "Occupation: " + Dts.Variables["Occupation"].Value.ToString();
String Education = "Education: " + Dts.Variables["Education"].Value.ToString();
String Sales = "Sales: " + Dts.Variables["Sales"].Value.ToString();
String HireDate = "HireDate: " + Dts.Variables["HireDate"].Value.ToString();

MessageBox.Show(FullName + Environment.NewLine + Education + Environment.NewLine +
                 Occupation + Environment.NewLine + Sales + Environment.NewLine + HireDate);
C# code to Execute in Single Rowset 12

单击“确定”完成 SSIS 单个行集包中的执行 SQL 任务配置。让我们运行包

Execute SQL Task in SSIS Single Rowset 13

单击消息框上的“确定”按钮完成执行过程

Execute SQL Task in SSIS Single Rowset 14