如何使用SSIS每天插入行,以便Identity列将记录行数?

时间:2016-12-21 15:04:55

标签: ssis

我每天都安排一个SSIS包。包的主题是从服务器A到服务器B各100个数据库中复制1个表数据。要求是数据库逐日增加。所以,明天的总数据库是101,然后是第102天。 该软件包将截断来自100个数据库的1个表中的所有数据,并将加载具有100个数据库的表以及新的101数据库。通过SQL作业执行的程序包需要很长时间。

表具有与Identity RowID列相同的列结构。我正在寻找的而不是每天从启动数据库加载我需要包只加载新的数据库i,e 101,102,103等。这样,Identoty RowID列将记录增量。

有没有可能做到这一点。这样可以缩短时间。

感谢。

1 个答案:

答案 0 :(得分:1)

如果您只需要传输较新的数据库而忽略旧的数据库。这是做到这一点的方法:

  1. 创建新的日志表以进行日志记录。可以包含少量行,例如DatabaseNameImportedDate
  2. 创建用于保存已处理数据库名称的新变量
  3. 在实际传输任务中添加execute sql task以检查处理数据库是否已存在于该日志表中,命令将如下所示:
  4. if not exists(select DatabaseName from logTable begin select 1 end)

    并将结果设置为单行

    1. 创建新变量以将结果映射到执行sql任务

    2. 在表达式约束中使用该结果变量来控制是否处理或检查另一个数据库

    3. 希望这会加快您的流程