1

我希望为此找到答案:

在 sysssislog 表中,同一包的 executionID 更改了两次。例如,在 prevalidate 阶段, executionID 是19EF7848-F626-4AF6-8B5F-0F419530597E. 但是这个 executionID 会更改为DA549ABD-27CC-4965-9DA0-FC701FB8F92C包开始执行的时间。

要查找有关此的更多信息,我阅读了有关 sysssislog 表的 BOL 条目,它指出(作为 ExecutionID 的特别说明):

运行单个包可能会为 ExecutionID 元素创建具有不同值的日志条目。例如,当您在 SQL Server Data Tools 中运行包时,验证阶段可能会创建带有对应于 SQL Server Data Tools 的 ExecutionID 元素的日志条目。但是,执行阶段可能会使用对应于 dtshost.exe 的 ExecutionID 元素创建日志条目。再例如,当您运行包含执行包任务的包时,这些任务中的每一个都运行一个子包。这些子包创建的日志条目可能具有与父包创建的日志条目不同的 ExecutionID 元素。

我无法理解这种行为。在整个包的执行过程中,executionID 不应该保持不变吗?我正在考虑使用 packageGUID 作为我的标识符,这样我就可以解决这个问题,但是对此的任何帮助将不胜感激。TIA。

4

1 回答 1

2

正如 BOL 所说,如果您从 BIDS (2005-2008R2)/SSDT (2012) 中运行包,则包的执行 ID 将根据事件处理流的位置而波动。如果这是不可接受的,请仅从命令行 ( dtexec /file myPackage.dtsx) 或通过代理作业运行包。这将消除验证阶段获取不同执行 ID 的机会。我不相信您对儿童包裹有任何追索权。

于 2012-06-19T16:45:13.757 回答