Sql server SSI截断/删除所有行并重新插入而不是插入/更新增量

Sql server SSI截断/删除所有行并重新插入而不是插入/更新增量,sql-server,oracle,ssis,data-migration,Sql Server,Oracle,Ssis,Data Migration,我需要编写一个SSIS包,以便在15天后从大约1400个表(每个表包含数百万条记录)将数据从Oracle导入SQL Server。建议采用哪种方法: 每次导入时,SQL Server中的foreach表 截断/删除所有记录,并从Oracle导入所有记录 对于SQL Server中每个表中的每一行,检查它是否在相应的Oracle表中更新,如果是,则更新它,如果有,则插入新行 提前感谢。是否考虑过使用?我认为这取决于delta的大小。如果变化很大,则使用truncate;否则更新。天哪,1400

我需要编写一个SSIS包,以便在15天后从大约1400个表(每个表包含数百万条记录)将数据从Oracle导入SQL Server。建议采用哪种方法:

每次导入时,SQL Server中的foreach表

  • 截断/删除所有记录,并从Oracle导入所有记录
  • 对于SQL Server中每个表中的每一行,检查它是否在相应的Oracle表中更新,如果是,则更新它,如果有,则插入新行

提前感谢。

是否考虑过使用?

我认为这取决于delta的大小。如果变化很大,则使用truncate;否则更新。天哪,1400张桌子!它们都是相似的还是有共同的特征?你到底要怎么为这么多人写剧本?@Gosh:不,他们没有任何共同点。我正在考虑使用
foreach
循环并使用
SqlBulkCopy
。检测更改有多容易?您是否有一个简单的指标,如上次修改的日期或其他标志,或者基本上需要进行字段到字段的比较?是否需要说明源系统中的删除?复制数据的SLA是什么?您使用的是SQL Server的哪个版本(2005/2008/2012)和哪个版本(标准、企业、BI等)?@billinkc:a)我必须进行字段比较,b)我还需要监视删除,c)我不太清楚术语“SLA”,d)版本:SQL Server 2012和Oracle 11g。是的,我使用SSMA迁移数据库架构,但我不确定这是否是周期性数据导入的最佳选择。我同意,对于自动化来说,这不是最好的工具。但是,只需单击一下,就可以导入一个完整的模式(在您的例子中是1400个表)。我相信这比为那1400个表开发和维护ETL要好,除非你非常确定它们不会随着时间的推移而改变。