2010-08-05 77 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'容器'。一旦容器變爲活動狀態,每個容器內的對象都會激活,但除非容器內的對象連接在一起,否則它們將獨立運行。