• 欢迎访问金笔头博客,这是一个菜鸟(伪)程序员的自留地,欢迎访问我的github:点击进入

SSIS 之DelayValidation属性的用法

SSIS eason 1360次浏览 0个评论 扫描二维码

    SSIS使用Validation确定包在运行时是否会失败,它使用两种类型的验证:第一种是package validation,在开始执行包之前,验证包及其包含的所有组件;第二种是component validation,在组件即将运行之前对自身进行验证。

    如果Package的DelayValidation=False,那么Package Validation发生在Package执行之前。如果DelayValidation=True,那么Package执行之后第一步就是进行Package Validation,然后进行Component Validation。

    我们假设一个场景,包中的第一个组件创建了一个临时表,包中的第二个组件将引用这个临时表,在包的验证过程中,第一个组件还没来得及执行,因此临时表也还没创建好,在验证第二个组件时最终导致包验证失败。SSIS会抛出一个验证异常,提示包验证失败。但是如果我们将第二个组件的DelayValidation属性设置为True,就不会出现这种错误了,因为包在执行之前并不会马上验证第二个组件,而是在第一个组件执行完毕之后第二个组件执行之前对第二个组件进行验证,而这个时候临时表已经有了,因此可以正常执行。

下面以实例说明:
SSIS 之DelayValidation属性的用法
    此包每天定期执行,大体的流程是从SFTP服务器上下载一个Excel文件,该文件可能有也可能没有,如果没有就不管,如果有就将其数据加载至数据库中。当组件2的DelayValidation属性为false时,如果组件1的文件没有下载下来,在运行的时候就会出现包验证错误
SSIS 之DelayValidation属性的用法
当我们将组件2的DelayValidation属性设为True时,运行就没有问题。
SSIS 之DelayValidation属性的用法

 


金笔头博客, 版权所有丨如未注明 , 均为原创, 转载请注明SSIS 之DelayValidation属性的用法
喜欢 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址