我有一个SSIS包,我使用SSMS中的导入向导保存。导入使用表来保存从平面文件导入的所有值,然后将这些值导出到永久表中。例如,平面文件本身被导入'mytable'。然后将'mytable'的内容转移到'mypermanenttable'。我最近在SSIS包的末尾添加了一个drop mytable SQL语句。因为当我再次运行SSIS包时我现在缺少'mytable',所以我在控制流中的'准备SQL任务1'步骤之前添加了一个T-SQL语句,该步骤将在导入开始之前创建'mytable'。我尝试运行整个SSIS包时出错。然而,我可以逐个运行SSIS流程的每一步,并以这种方式完成整个包,没有任何问题。我猜测在“准备SQL任务1”步骤中有一些验证,它在我的创建表'执行T-SQL语句任务'运行之前检查'mytable'。你会如何解决这个问题?
答案 0 :(得分:2)
将DelayValidation
的{{1}}属性设置为Data Flow Task 1
。在创建登台表之后,将在运行此任务之前触发验证。
答案 1 :(得分:0)
您是否可以尝试更新SQL任务以包括检查表是否存在:
IF (NOT EXISTS (SELECT *
FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_SCHEMA = 'TheSchema'
AND TABLE_NAME = 'TheTable'))
BEGIN
--Create table
END