3年前的数据将源移动到临时表,然后在删除仅从源移动的数据后加载到最终表,如何在ssis包中实现这一点?此过程应该每天发生。
我使用以下查询来选择3年前的记录
Select top 5000 column1,column2,column3,rec_date
from source_table
where (rec_date>DATEADD(year,-3,GETDATE()))
我创建了移动数据的流任务,但是如何删除移动的记录?
3年前的数据将源移动到临时表,然后在删除仅从源移动的数据后加载到最终表,如何在ssis包中实现这一点?此过程应该每天发生。
我使用以下查询来选择3年前的记录
Select top 5000 column1,column2,column3,rec_date
from source_table
where (rec_date>DATEADD(year,-3,GETDATE()))
我创建了移动数据的流任务,但是如何删除移动的记录?
1条答案
按热度按时间mutmk8jj1#
假设在源表中有某种ID/主键,我很想这样做:
1.使用指令码目的地选取您要放入
DataTable
对象(将它写入SSIS中的对象变数)的前5000个识别码。1.在下一个数据流程中,使用
DataTable
做为来源(指令码来源),并针对ID数据行使用[查阅]从来源数据表取得您需要的数据。然后这些数据会进入临时数据库。1.接下来,使用
Datatable
中的ID删除源记录。有很多方法可以做到这一点,例如,在SSIS中使用For Each容器(即,针对DataTable
中的每条记录),构造一个针对源表执行的DELETE语句,等等。