可以使用MERGE语句来实现批量插入并去重。假设有一个名为Table1的表,包含三个字段:TagName、AcquisitionTime和Value。以下是示例代码:

MERGE INTO Table1 AS target
USING (VALUES ('Tag1', '2021-01-01 10:00:00', 100),
              ('Tag2', '2021-01-02 11:00:00', 200),
              ('Tag1', '2021-01-01 10:00:00', 150),
              ('Tag3', '2021-01-03 12:00:00', 300)) AS source (TagName, AcquisitionTime, Value)
ON target.TagName = source.TagName AND target.AcquisitionTime = source.AcquisitionTime
WHEN NOT MATCHED THEN
    INSERT (TagName, AcquisitionTime, Value)
    VALUES (source.TagName, source.AcquisitionTime, source.Value);

上述代码将插入四条记录,其中第一条和第三条是重复记录,因此只会插入三条记录。使用MERGE语句时,需要指定目标表和源数据(可以是VALUES或子查询),并在ON子句中指定匹配条件。WHEN NOT MATCHED THEN表示当源数据与目标表中的数据不匹配时执行插入操作。

sqlserver 批量插入。如果TagName和AcquisitionTime都一样则是重复记录 重复记录则不添加。

原文地址: https://www.cveoy.top/t/topic/bgts 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录