SSIS:如何检查logging是否不存在于平面文件中,但存在于数据库中

我正在准备一个SSIS作业,我正在将.CVSV文件导入到OLE DB目标(sql数据库)。 我们将每天获取这些文件。 .CSV文件包含医生的logging。 每一行代表一名医生。 下图显示了我能够如何成功地做到这一点。 到目前为止没有问题。 在这里输入图像描述

以下是我需要帮助的内容:

如果医生不再活跃,我们将得到相同的.CSV文件,没有他/她的logging。 如何检查logging是否不在.CSV文件中,但存在于SQL数据库中? 我需要更新SQL数据库中的医生行,并将该行的IsActive字段更新为false

自然,这是伪代码。

SELECT DoctorID FROM DrTable where NOT EXISTS (select DoctorID from CSVTable where CSVTable.DoctorID=DrTable)) 

您可以使用以下语句在相同的语句中执行更新:

 UPDATE DrTable Set IsActive = 0 WHERE Doctorid IN ( SELECT DoctorID FROM DrTable where NOT EXISTS (select DoctorID from CSVTable where CSVTable.DoctorID=DrTable))) 

除了Eric的回答,你也可以默认使用SSIS提供的“合并”function。 您必须确保您的平面文件源和数据库相对于所有列都是相同的数据types,并且它们都按照您用来join它们的密钥进行sorting。