首页 文章

验证依赖于SSIS包中创建的表的数据流

提问于
浏览
1

我有一个SSIS包,我使用SSMS中的导入向导保存 . 导入使用表来保存从平面文件导入的所有值,然后将这些值导出到永久表中 . 例如,平面文件本身被导入'mytable' . 然后将'mytable'的内容转移到'mypermanenttable' . 我最近在SSIS包的末尾添加了一个drop mytable SQL语句 . 因为当我再次运行SSIS包时我现在缺少'mytable',所以我在控制流中的'准备SQL任务1'步骤之前添加了一个T-SQL语句,该步骤将在导入开始之前创建'mytable' . 我尝试运行整个SSIS包时出错 . 然而,我可以逐个运行SSIS流程的每一步,并以这种方式完成整个包,没有任何问题 . 我猜测在“准备SQL任务1”步骤中有一些验证,它在我的创建表'执行T-SQL语句任务'运行之前检查'mytable' . 你会如何解决这个问题?

enter image description here

2 回答

  • 2

    Data Flow Task 1DelayValidation 属性设置为 True . 在创建登台表之后,将在运行此任务之前触发验证 .

  • 0

    您是否可以尝试更新SQL任务以包括检查表是否存在:

    IF (NOT EXISTS (SELECT * 
                 FROM INFORMATION_SCHEMA.TABLES 
                 WHERE TABLE_SCHEMA = 'TheSchema' 
                 AND  TABLE_NAME = 'TheTable'))
    BEGIN
      --Create table
    END
    

相关问题