次の条件で多数の行を挿入するためのSQLServerの特定のコマンドはありますか:データベースに行が既に存在する場合、挿入中にそれを複製しませんか?
編集済み
sqlbulkcopyでは、行がすでにテーブルにあるため、例外を回避したいですか?
次の条件で多数の行を挿入するためのSQLServerの特定のコマンドはありますか:データベースに行が既に存在する場合、挿入中にそれを複製しませんか?
編集済み
sqlbulkcopyでは、行がすでにテーブルにあるため、例外を回避したいですか?
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);
編集あなたはあなたの編集でこれはバルクコピーのためであると言いますが?インデックスの[重複キーを無視する]オプションを調べることもできます。
T-SQLでそれを行う方法はここで説明されています(記事は少し古いですが)