我目前有一个存储过程,可以从.csv文件中执行批量插入名为“TomorrowPatients”的表。执行批量插入时,我需要确定添加的记录是否已存在于表中,如果是,请不要添加记录。如果记录不存在,那么我需要将它附加到表中。什么是最有效的方法?任何帮助将不胜感激。
编辑:我创建了一个名为“TomorrowPatients_Temp”的临时表。我正在尝试使用此表来确定要插入的记录。
答案 0 :(得分:0)
将整个数据插入临时表,比如#TempData。然后使用以下代码:
INSERT INTO TommorowPatients
SELECT * FROM #TempTable TT
LEFT JOIN TommorowPatients TP ON TT.PatientId = TP.PatienId
AND TT.PatientName = TP.PatientName
AND TT.PatientSSN = TP.PatientSSN
WHERE TP.PatientId IS NULL
其中PatientId是TommorowPatients表的主键。
请勿使用LEFT JOIN添加“RoomNumber”列,如:TT.RoomNo = TP.RoomNo。这样,即使房间号码发生变化,也不会插入新数据,因为我们仅根据患者特定数据加入。