SQL 服务器如果不存在则插入 - 无主键

SQL Server Insert If Not Exists - No Primary Key

我有 Table ATable B

Table A 包含来自其他来源的数据。

Table B 包含从 Table A 插入的数据以及来自其他表的数据。我已经完成了从 AB 的初始数据插入,但现在我要做的是从 Table A 插入 Table B 中不存在的记录每天一次。不幸的是,Table A 中没有主键或唯一标识符,这使得这很困难。

Table A 包含一个名为 file_name 的字段,其值如下所示: this_is_a_file_name_01011980.txt
此列中可以有重复值(同一日期的多个文件)。

Table B 中,我创建了一个列 data_date,它从 table a.file_name 字段中提取日期。还有一个 load_date 字段,它在插入数据时只使用 GETDATE()

我想我可以通过某种方式比较这些表中的日期来决定需要插入什么。例如: 如果来自 Table A 的文件日期(需要再次提取)大于 Table Bload_date,则将这些记录插入 Table B.

如果需要任何说明,请告诉我。

您可以使用 exists 或 except。有了这里的解释,似乎 except 会缩短这个时间。像这样。

insert tableB
select * from tableA
except
select * from tableB