SSIS没有按顺序执行

时间:2010-08-05 14:07:44

标签: ssis package containers

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

由于

2 个答案:

答案 0 :(得分:0)

尝试将日志记录条目作为包的一部分添加到数据库表中,以便您可以看到哪个容器从何时开始。

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

  1. '开始第1步'
  2. “完成第1步,开始第2步”
  3. “完成第2步,开始第3步”
  4. “完成第3步”
  5. 这是我的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
    

答案 1 :(得分:0)

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