2010-03-17 84 views
0

如果包执行中有任何错误,我如何发送包含错误详细信息的电子邮件? 基本上我怎样才能得到错误的细节,并把它们放在邮件发送任务的消息?SSIS发送错误信息

+0

三个问题,你不接受,你有很好的答案,你刚才重申的问题再问一遍,为什么? – 2010-03-19 06:58:01

回答

3

这里是例子:

比方说,我有一个SQL任务,我想要得到的“任务失败”错误的描述的电子邮件。

  1. 现在拖动电子邮件任务,并给予从SQL任务先例约束失败电子邮件任务
  2. 随着电子邮件任务,给SMTP连接,从,电子邮件地址,主题,邮件..等
  3. 创建错误信息
  4. 将事件处理任务的用户变量失败或出错,并创建脚本任务与包级别。
  5. 在脚本任务中,我们需要分配系统变量和用户变量。
  6. 确保属性 - 禁用事件处理程序应该是false,那么只有它会读取系统变量。

最后执行包..如果发生任何错误,那么你会得到与描述的电子邮件。

感谢

R于同一主题

2

这就是我们所做的。我们使用SSIS的日志记录系统将所有错误记录到表中。

然后在包级别创建一个事件处理程序。在事件处理程序中,当发生失败时发送一封电子邮件,其中包含软件包的名称(我们始终将其作为变量),失败的任务的名称(使用变量System :: SourceName为此,花了我一段时间找到它。)和查询日志表,以使支持团队能够快速提取细节(电子邮件正文的一部分,我使用了一个变量,但您不必)。

+1

System :: PackageName也包含包的名称,所以你不需要创建一个变量来保存它。如果您使用的是默认日志记录格式,则日志查询将为“Select * from dbo.sysdtslog90 where executionID =”以及System:ExecutionInstanceGuid的值。 **在Sql Server 2005中有效的这些变量和表名在其他版本中可能有所不同** – 2010-03-18 21:10:19

+0

我们这样做是因为我们的元数据数据库中的名称可能与包名称不完全匹配,我需要使用该名称。而且我们的查询是不同的,因为我们在元数据库中将日志信息解析为更加用户友好的格式。但是,如果你不使用定制的元数据库,你的观点是完全正确的,威廉。 – HLGEM 2010-03-18 22:26:06