2010-08-05 79 views
0

我有一个非常简单的SSIS pacakge,在控制流中有3个容器。每个容器都通过一个优先约束明确连接,该约束仅将评估操作设置为约束,并且每个容器中都有一个预执行事件处理程序。当我从Visual Studio运行包时,它工作得很好,但是当我从DTExec.exe运行它时,它跳过了第一个容器事件处理程序并直接执行第二个容器。最奇怪的是,当我将该软件包复制到另一台计算机上时,创建一个新软件包并粘贴内容而不更改任何内容时,它运行良好。我在8台电脑中有2台出现这个问题。任何想法 ?SSIS没有按顺序执行

感谢

回答

0

尝试添加日志记录到数据库表作为包的一部分,所以你可以看到哪些容器的起点时。

添加4个新容器,每个容器调用传递字符串消息的相同存储过程,并将新行添加到具有时间戳记的日志表中。

  1. '开始步骤1'
  2. “完成步骤1中,起始步骤2”
  3. “完成步骤2中,开始步骤3”
  4. “完成步骤3”

这里的我的sp是什么样的:

CREATE PROCEDURE [dbo].[usp_ssis_stamp_xfer_log] 
    (@seq int, @comment varchar(1000)) 
AS 
BEGIN 
    SET NOCOUNT ON; 

    insert into dbo.ssis_xfer_log (stamp, sequence, comment) 
    values (getdate(), @seq, @comment) 
END 

和日志表:

CREATE TABLE [dbo].[ssis_xfer_log](
    [stamp] [datetime] NOT NULL, 
    [sequence] [smallint] NOT NULL, 
    [comment] [varchar](50) NULL, 
CONSTRAINT [PK_xfer_log] PRIMARY KEY CLUSTERED 
(
    [stamp] ASC, 
    [sequence] ASC 
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] 
) ON [PRIMARY] 

GO 
SET ANSI_PADDING OFF 
0

你提到3'容器'。一旦容器变为活动状态,每个容器内的对象都会激活,但除非容器内的对象连接在一起,否则它们将独立运行。