2010-10-12 55 views
1

是否有一个特定的SQL Server命令,以便用条件插入很多行:如果数据库中已存在的行在插入过程中不重复它?没有重复的SQL插入

编辑

SqlBulkCopy的,我想避免异常,因为行已经在表中?

回答

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

如何做到这一点的T-SQL是discussed here(文章是有点老,虽然)