如何避免重复的记录插入SQL Server中的表?

时间:2019-10-30 15:16:20

标签: sql sql-server

我有一个表格,该表格按月插入患者记录及其账单明细。让我们说表“ Paitent_Details”。在每个月的第一天,将插入当月的某些记录。在下个月,我只希望插入那些月份的记录,而不是所有记录。

当前,我已经编写了一个SP来获取结果,然后将记录存储在temp表变量中,然后将记录插入Patient_Details表中。

例如,对于2019年9月,我为9月插入了125条记录。对于2019年10月,我想插入100条记录,但是在插入2019年10月的100条记录之前,它先运行了125条记录。因此,理想情况下,记录总数应该是225(125 + 100),而记录实际上是350(125 + 125 + 100)

我想设置一个逻辑来检查是否插入了2019年9月的数据,如果要忽略则忽略并仅插入2019年10月的记录。

1 个答案:

答案 0 :(得分:0)

尝试使用左外部联接检查记录是否存在,以保持插入幂等:

INSERT INTO b (Patient_id, DOS, CPT, DetailId)
SELECT a.Patient_Id, a.DOS, a.CPT, a.DetailId
FROM SourceTable_a a
LEFT OUTER JOIN DestinationTable_b b ON b.DetailId = a.DetailId
WHERE b.DetailId IS NULL