2

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

在此处输入图像描述

4

2 回答 2

2

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

于 2012-09-25T18:48:59.017 回答
0

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

IF (NOT EXISTS (SELECT * 
             FROM INFORMATION_SCHEMA.TABLES 
             WHERE TABLE_SCHEMA = 'TheSchema' 
             AND  TABLE_NAME = 'TheTable'))
BEGIN
  --Create table
END
于 2012-09-25T13:57:21.447 回答