Di Mitch menunjukkan fungsi salinan massal (SqlBulkCopy
, bcp
dan BULK INSERT
) hanya menangani sisipan, bukan pembaruan.
Pendekatan normal untuk masalah Anda adalah melakukan pemuatan massal dalam dua (atau lebih) langkah - pertama Anda menggunakan penyisipan massal untuk memuat data Anda ke dalam tabel pementasan, dan kemudian menggunakan kueri untuk menyisipkan/memperbarui catatan di tabel utama berdasarkan data dalam tabel staging, misalnya:
INSERT INTO MyTable
(Column1, Column2, [etc...])
SELECT Column1, Column2, [etc...]
FROM Test_Staging
WHERE [Some condition]
Lihat SQL SERVER – Memasukkan Data Dari Satu Tabel ke Tabel Lain untuk informasi tentang cara menyisipkan ke dalam satu tabel dari tabel lain - juga dimungkinkan untuk bergabung dalam UPDATE, tetapi saya kesulitan menemukan sumber yang bagus tentang ini.