SQL插入没有重复

时间:2010-10-12 09:54:07

标签: sql sql-server duplicate-data insertion

是否存在针对SQL Server的特定命令,以便使用条件插入大量行:如果数据库中已存在行,则在插入期间不会复制它?

被修改

sqlbulkcopy 中,我想避免异常,因为表格中已有一行?

2 个答案:

答案 0 :(得分:3)

您可以使用MERGE命令。示例用法。

CREATE TABLE #A(
 [id] [int] NOT NULL PRIMARY KEY CLUSTERED,
 [C] [varchar](200) NOT NULL)


    MERGE #A AS target
    USING (SELECT 3, 'C') AS source (id, C)
    ON (target.id = source.id)
    /*Uncomment for Upsert Semantics
       WHEN MATCHED THEN 
        UPDATE SET C = source.C */
    WHEN NOT MATCHED THEN    
        INSERT (id, C)
        VALUES (source.id, source.C);

修改虽然您在编辑中说这是批量复制?您还可以调查索引上的“忽略重复键”选项。

答案 1 :(得分:1)

如何在T-SQL中执行discussed here(文章虽然有点旧)