我正在准备一个ssis作业,在这里我将一个.cvsv文件导入ole db destination(sql数据库)。我们每天都会拿到这些文件。csv文件包含医生的记录。每一行代表一个医生。下图显示了我如何能够成功地做到这一点。到目前为止没有问题。
以下是我需要的帮助:
如果医生不再活动,我们将得到相同的.csv文件,但没有他/她的记录。如何检查记录是否在.CSV文件中,但是否存在于SQL数据库中?我需要更新sql数据库中的doctor行,并将该行的isactive字段更新为false。
最佳答案
当然,这是psuedo代码。
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)))