[英]Easy way of overwriting old rows in SSIS Package
您可以尝试两种主要方法:
在行ID上运行查找。 如果匹配,请使用UPDATE语句为每行运行OLEDB命令转换。 如果不匹配-将行定向到OLE DB目标。
易于实现,简单明了的逻辑,但是大量的UPDATE语句将导致性能问题。
在数据库中创建一个中间表,在运行数据流任务之前将其清理,然后将数据流中的所有行存储到该中间表中。 然后在下一个任务上-执行以下任一操作:
MERGE
中间表与主表。 有关MERGE的更多信息。
在事务中-从中间表上存在的主表中删除行,然后执行INSERT INTO <main table> SELECT ... FROM <intermediate table>
我通常更喜欢采用MERGE的中间表方法-性能高,简单灵活。 在并发会话或群集列存储表中运行时,MERGE语句可能会产生不利影响,然后我将中间表与DELETE...INSERT
命令一起使用
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.