【发布时间】:2011-08-11 23:23:30
【问题描述】:
我正在研究 SQL 2008 - SSIS 包。我正在从 C# 代码执行包。这是 SQL 表的简单平面文件 (.csv)。
从 C# 代码中,我得到了 SUCCESS 的执行结果,但在包内 Transactions 没有被执行,所以实际上并没有导出值。
我需要通过读取日志文件来调试它。
如何在包内创建错误日志或日志文件?
【问题讨论】:
标签: sql-server-2005 sql-server-2008 ssis
我正在研究 SQL 2008 - SSIS 包。我正在从 C# 代码执行包。这是 SQL 表的简单平面文件 (.csv)。
从 C# 代码中,我得到了 SUCCESS 的执行结果,但在包内 Transactions 没有被执行,所以实际上并没有导出值。
我需要通过读取日志文件来调试它。
如何在包内创建错误日志或日志文件?
【问题讨论】:
标签: sql-server-2005 sql-server-2008 ssis
这是在 SSIS 中配置日志记录功能的一种方法。在此示例中,我将发送邮件任务配置为失败,并启用了基于 SQL Server 的日志记录,该日志记录将在包失败时存储 OnError 和 OnTaskFailed 消息。还有其他您可能感兴趣的活动。在我从事的项目中,这两项任务帮助我确定了 SSIS 包中出现的大部分问题。
分步过程:
Name 复选框并在Configuration 列下提供数据源。这里 SQLServer 是连接管理器的名称。 SSIS 将在您选择的数据库中创建一个名为dbo.sysssislog 的表和存储过程dbo.sp_ssis_addlogentry。请参阅下面的屏幕截图 #3。OnError 和OnTaskFailed。请参阅下面的屏幕截图 #4。dbo.sysssislog 的示例输出如下面的屏幕截图#6 所示。我只显示了几列id、event、source 和message。表中还有其他列。消息列包含错误消息,在这种情况下,发送邮件任务中提到的服务器名称是错误的。源列包含失败的任务。在本例中,包名称为 SSISLoggingExample,Send Mail Task 命名为 Email Task。错误消息将从任务冒泡到包级别。因此,错误消息会在任务和包级别记录两次。希望对您有所帮助。
屏幕截图 #1:
屏幕截图 #2:
截图#3:
屏幕截图 #4:
屏幕截图 #5:
屏幕截图 #6:
【讨论】:
在 SSIS 中记录错误非常容易。转到事件处理程序选项卡,从下拉列表中选择 OnError。现在,您可以在此处针对任何错误发送电子邮件,也可以开发自己的自定义逻辑将错误记录到数据库或写入文本文件。
此外,您可以从 SSIS 中可用的现有日志记录机制中进行选择。单击菜单“SSIS”,您将看到第一个选项为 Logging,然后您将看到不同的选项来记录错误/警告和您需要的大量信息。
【讨论】: