繁体   English   中英

如何将每个容器和任务详细信息记录到SSIS中的表中

How to log each container and task details into a table in SSIS

提示:本站收集StackOverFlow近2千万问答,支持中英文搜索,鼠标放在语句上弹窗显示对应的参考中文或英文, 本站还提供   中文繁体   英文版本   中英对照 版本,有任何建议请联系yoyou2525@163.com。

我有一个包含多个容器的软件包,每个容器中都有多个任务,如下所示。

在此处输入图片说明

在包执行期间,我需要将每个容器和任务详细信息记录到如下表中。

LogID  Container        Task                        Status   Error                                       LoggedOn
1      SEQ - Customer   truncate customer table     SUCCESS                                              2015-03-31 02:22:50.267
2      SEQ - Customer   create temp table to store  SUCCESS                                              2015-03-31 02:22:50.267
3      SEQ - Customer   DF - Loading Customers      SUCCESS                                              2015-03-31 02:22:50.267
4      SEQ - Customer   Validating Customers        FAILED   Failed to convert from varchar to bigint    2015-03-31 02:22:50.267

如果在任何特定任务上发生任何错误,则应将错误描述记录在表的错误列中。请帮助我如何通过事件处理程序或登录sis来实现此目的。

1 个回复

我是通过使用OnPreExecute,OnError事件处理程序来获得的。我已经将此选择为包级别的事件处理程序,并创建了一个变量:: Container(string)。选择包并生成这两个事件处理程序。

在执行SQL任务-> OnPreExecute事件中使用以下脚本。

SourceDescription-- Input
PackageName-- Input
Container-- Input
SourceName-- Input
Container-- Output

DECLARE @TaskType VARCHAR(500),@Package VARCHAR(500),@Container VARCHAR(500),@Task varchar(500)
SELECT @TaskType = ?,@Package =?,@Container= ?,@Task = ?

IF(@TaskType ='Sequence Container')
BEGIN
    SET @Container = @Task
END
ELSE IF(@Package <>@Task)
BEGIN
    INSERT INTO LogTable(Package,Container,Task,Status)
    SELECT @Package,@Container,@Task,'SUCCESS'
END

SET ? = @Container

及以下OnError事件中的脚本

SourceDescription-- Input
PackageName-- Input
Container-- Input
SourceName-- Input
ErrorDescription--Input

DECLARE @TaskType VARCHAR(500),@Package VARCHAR(500),@Container VARCHAR(500),@Task varchar(500),@Error VARCHAR(1000)
SELECT @TaskType = ?,@Package =?,@Container= ?,@Task = ?,@Error=?

IF(@TaskType ='Sequence Container')
BEGIN
    SET @Container = @Task
END
ELSE IF(@Package <>@Task)
BEGIN
    INSERT INTO LogTable(Package,Container,Task,Status,Error_Desc)
    SELECT @Package,@Container,@Task,'FAILED',@Error
END
1 SQL在主表中的每个记录的详细信息表中添加空行

我曾经在这个论坛上问过这个问题: 我需要将空行添加到SQL SELECT语句中,其结果应为10的倍数,这意味着如果表中有8行,则应添加2个空行,以便select语句有10行,如果表中有16行,应添加4空行,以便select语句有20行,依此类推。总之,选择的行必须始终为10、20、30 ...

2 Bootstrap Vue 表:每行中的每个显示详细信息按钮显示不同的详细信息

我有一个表格,其中一行将包含多个“更多详细信息”按钮,单击该按钮会展开以显示有关该行的其他信息。 基本上,对于同一行,如果您单击第一个“更多详细信息”按钮,我想显示信息 X,如果用户单击第二个“更多详细信息”按钮,我想显示信息 Y。 这行不通。 如果我注释掉最后一个row-details模板,那么两 ...

4 SSIS包任务执行详细信息

我们已经在使用源服务器作为另一台Prod DB服务器的一台Prod Server中部署了SSIS软件包,在这项工作中,我有很多软件包(近10个软件包),其中包含许多任务和子任务。 作业成功执行,我们可以使用作业步骤找到每个程序包执行的开始时间和结束时间。 现在,我们想知道每个包中的每 ...

6 如何从选定的主记录中读取详细信息表?

我在具有两个表的数据集上有一个绑定源,一个包含大量记录的主数据库和一个详细信息,而我只拥有所选主记录中的详细信息。 更改主表中当前记录的位置应触发一个请求,以新的明细替换明细表中的数据。 但是,我不确定如何继续执行该计划。 我是否应该监视主表中记录的选择,获取相应主记录的明细数 ...

7 Python将启动日志(详细信息)记录到内存中,然后根据配置设置转储其子集:有示例吗?

我正在编写具有一些相当复杂的配置设置(带有来自环境,命令行和一些可能的配置文件的选项)的程序。 我想在所有配置读取和初始化过程中将非常详细的“调试”级别日志记录到内存中,然后,我想根据其中的一些选择性地将其中的一些(可能是全部)有选择性地转储到其最终的记录目标中。这些配置设置,命令行开关和环境 ...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2022 STACKOOM.COM