【发布时间】:2016-07-21 09:59:01
【问题描述】:
我创建了一个带有 OnError 事件处理程序的 SSIS 包,该处理程序在数据库中插入一些日志记录。
当我通过批处理文件运行包时,我在批处理文件日志中看到包无法执行,因为与数据库的连接(与我插入错误日志的数据库不同) 失败。但是,没有插入日志记录(意味着 OnError 事件处理程序没有触发?)
当与数据库的连接失败时,OnError 事件处理程序不会触发吗?
【问题讨论】:
标签: sql-server ssis
我创建了一个带有 OnError 事件处理程序的 SSIS 包,该处理程序在数据库中插入一些日志记录。
当我通过批处理文件运行包时,我在批处理文件日志中看到包无法执行,因为与数据库的连接(与我插入错误日志的数据库不同) 失败。但是,没有插入日志记录(意味着 OnError 事件处理程序没有触发?)
当与数据库的连接失败时,OnError 事件处理程序不会触发吗?
【问题讨论】:
标签: sql-server ssis
找到了。整个包的 DelayValidation 属性必须设置为 True,以便 连接管理器的验证(以及我认为的其他事情)在运行之前不会执行时间
OnError 事件处理程序不会被触发,因为它只在运行时起作用。但是,预验证发生在运行时之前,当预验证发现与 DB 的连接之一不起作用时,包会失败
【讨论】:
FailPackageOnFailure 设置为True虽然您可能不想永远保留第 2 步和第 3 步,但它们可以让您深入了解当前问题。
【讨论】: