SSIS 中的事件处理程序是最有用和强大的功能之一。在运行时,容器和任务等可执行文件会引发事件。
对于这个 SSIS 事件处理程序示例,在任务开始之前,OnPreExecute,或在发生错误时引发 OnError 事件,或者在任务验证后发生 OnPostValidate 事件等。我们使用事件处理程序的几个例子是:
- 在开始加载数据之前截断或清理表。
- 将不需要的文件导出到其他位置(或 SQL)后删除它们。
- 发生错误时发送电子邮件。
- 检索系统信息等。
在本文中,我们将通过一个示例向您展示如何在 SSIS 中配置事件处理程序。为此,我们将使用数据库中的 Employee 表

SSIS 示例中没有事件处理程序
从 SSIS 工具栏拖动 Execute SQL Task 并将其放置在 Control Flow 区域。

接下来,双击 Execute Task 将打开编辑器进行配置。让我选择 Connection Type 为 OLE DB Connection,它连接到数据库。接下来,我们使用 Direct Input 作为 SQL 语句,因此单击…按钮编写自定义事务命令。

请在此处编写您的自定义语句。从下面的屏幕截图中可以看到,我们正在编写一个 INSERT INTO 语句,将四个记录插入到我们之前创建的表中。
INSERT INTO [dbo].[EmployeeDuplicates]
([FirstName]
,[LastName]
,[Education]
,[Occupation]
,[YearlyIncome]
,[Sales]
,[HireDate])
SELECT[FirstName]
,[LastName]
,[Education]
,[Occupation]
,[YearlyIncome]
,[Sales]
,[HireDate]
FROM [dbo].[Employee]

单击 OK 关闭 Execute SQL task 编辑器。

让我们运行 Event Handlers 项目,看看我们是否成功将记录插入到 Employee Duplicate 记录中。

SSIS 事件处理程序示例
要进行配置,请按照下图所示导航到“事件处理程序”选项卡。

这里,事件处理程序有两个部分
- Executable:您可以使用此下拉列表选择要在其上应用事件处理的任务、容器。
- Event Handler:此下拉列表包含所有事件。您可以选择要处理的事件。例如,在发生 OnError 事件时发送电子邮件。

从下面的屏幕截图中,您可以看到我们正在选择 Execute SQL task 作为 Executable。

并选择 OnPreExecute 作为我们想要处理的事件。

从 SSIS 工具栏拖动 Execute Task,并将其放入 Event Handlers 区域。这意味着在包开始执行之前,此 Execute SQL Task 将执行。

请在此处编写您的自定义语句。从下面的屏幕截图中可以看到,我们正在编写一个 TRUNCATE 语句来删除 Employee Duplicate 表中存在的记录。
-- example TRUNCATE TABLE [dbo].[EmployeeDuplicates]

单击 OK 关闭 Execute SQL task 编辑器。

让我们运行 SSIS 事件处理程序包。此包将以 TRUNCATE TABLE(事件处理程序区域中的 Execute SQL Task)开始,然后它将在 Control Flow 区域中的 Employee Duplicate 表中开始插入数据。

让我们打开 SQL Server Management Studio 查询窗口以预览数据。如您所见,该包插入了 14 条记录。

我将向事件处理程序添加一个任务。这次,我们将添加一个 Script Task 来处理 Execute SQL Task 的 OnPostExecution。

双击 Script task 将打开以下编辑器来配置 Script task 组件。请单击“Edit Script..”按钮来编写 C# 脚本。

我们在下面屏幕截图中使用的 C# 代码是
// C# Script
MessageBox.Show("Hey!! This is Tutorial Gateway Custom Message from Post Execute");

正如您所看到的,SSIS 事件处理程序项目在 Control Flow 区域中的 Execute SQL task 完成后显示消息。

评论已关闭。