Tại Mitch chỉ ra các chức năng sao chép hàng loạt ( SqlBulkCopy
, bcp
và BULK INSERT
) chỉ xử lý các phần chèn chứ không phải các bản cập nhật.
Cách tiếp cận thông thường cho vấn đề của bạn là thực hiện tải hàng loạt trong hai (hoặc nhiều) bước - trước tiên bạn sử dụng chèn hàng loạt để tải dữ liệu của mình vào bảng dàn, sau đó sử dụng truy vấn để chèn / cập nhật bản ghi trong bảng chính dựa trên dữ liệu trong bảng dàn, ví dụ:
INSERT INTO MyTable
(Column1, Column2, [etc...])
SELECT Column1, Column2, [etc...]
FROM Test_Staging
WHERE [Some condition]
Xem SQL SERVER - Chèn dữ liệu từ bảng này sang bảng khác để biết thông tin về cách chèn vào một bảng từ một bảng khác - cũng có thể thực hiện tham gia CẬP NHẬT, nhưng tôi đang đấu tranh để tìm một tài nguyên tốt về điều này.