2010-10-12 75 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(文章是有點老,雖然)