我有一个非常简单的SSIS pacakge,在控制流程中有3个容器。每个容器都通过优先约束显式连接,该优先约束将评估操作设置为仅限制,并且每个容器都有一个预执行事件处理程序。当我从Visual Studio运行包时,它工作正常,但是当我从DTExec.exe运行它时,它跳过第一个容器事件处理程序并直接执行第二个容器。最奇怪的是当我将该软件包复制到另一台计算机,创建一个新软件包并粘贴内容而不更改任何内容时,它运行正常。我的8台计算机中有2台遇到了这个问题。有什么想法吗?
由于
答案 0 :(得分:0)
尝试将日志记录条目作为包的一部分添加到数据库表中,以便您可以看到哪个容器从何时开始。
添加4个新容器,每个容器调用传递字符串消息的相同存储过程,并将新行添加到带有时间戳的日志表中。
这是我的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个'容器'。一旦容器变为活动状态,每个容器内的对象将激活,但除非容器内的对象链接在一起,否则它们将独立运行。