2

我有一个 SSIS 包,我在其中设置了包登录

OnError OnInformation OnPre-Execute OnPostExecute OnBufferSizeTuning

当我在 VS 中的(64 位)服务器上执行此包时,它将写入所有信息,包括从文件处理的行数和“预执行阶段开始”,但是如果我从文件执行包从同一服务器上的 SQL Server 代理作业存储包仅写入一行“文件处理已开始”。

我环顾四周,但找不到任何关于包日志记录在调试与作业或 32 位与 64 位中的不同之处。它是完全相同的包 - 任何想法为什么包日志记录会有所不同?

4

1 回答 1

1

我认为您混淆了两个不同的日志选项。

您可以在 SSIS 包中建立事件日志记录,并将该输出定向到表、文件、事件日志等。

没有编写自己的实用程序来运行 SSIS 包,dtexec就是将 SSIS 的包 XML 转换为实际命令的东西。dtexec 侦听在 BIDS/SSDT/VS 中输出到屏幕的各种事件和管道,或将其记录在作业步骤历史记录窗口中。Visual Studio 运行的默认值不同于命令行或 SQL 代理调用。

您要设置的参数是/ConsConsoleLog 或/RepReportLog。很可能是 ReportLog。

SQL 代理的默认执行将类似于/REPORTING E这只会生成记录的错误(根据 BOL)。您可以从代理作业中删除它,然后按照指定的默认值

如果未指定 /Reporting 选项,则默认级别为 E(错误)、W(警告)和 P(进度)。

或明确提供您想要的报告事件。

在您的 SQL 代理作业步骤中,最后可能看起来像这样。开头是不同的,因为它指向文件系统上的一个包,而你的将在 MSDB 中。

在此处输入图像描述

单击“手动编辑命令行”选项,然后根据您的意愿使 /REPORTING 弯曲

于 2013-08-12T18:14:09.397 回答