1

次の条件で多数の行を挿入するためのSQLServerの特定のコマンドはありますか:データベースに行が既に存在する場合、挿入中にそれを複製しませんか?

編集済み

sqlbulkcopyでは、行がすでにテーブルにあるため、例外を回避したいですか?

4

2 に答える 2

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);

編集あなたはあなたの編集でこれはバルクコピーのためであると言いますが?インデックスの[重複キーを無視する]オプションを調べることもできます。

于 2010-10-12T10:02:22.443 に答える
1

T-SQLでそれを行う方法はここで説明されています(記事は少し古いですが)

于 2010-10-12T09:59:40.487 に答える