SqlBulkCopy İle Veri Kopyalama

Excel yada benzeri bir kaynaktan elde ettiğimiz yaklaşık bir milyon kayıt içeren bir DataTable olduğunu düşünelim. Bu kayıtları veritabanında ki x bir tabloya nasıl eklerizinsert ?

Tek tek Insert yapmak mı? Bildiğin intihar olur.
DataAdapter ile UpdateGüncelleme yapmak mı? İnanılmaz zahmetli ve gereksiz.(Çalışacağından emin bile değilim)

Biri Bulk Insert mü dedi, işte aradığımız cevap.
Bulk Insert, yüklü miktarda ki verileri herhangi bir tablotable ya performanslı bir şekilde aktarmak için veri katmanında kullanabileceğimiz bir komuttur. Ado.Net teknolojisi SqlBulkCopy (kısaca sbc diyelim) sınıfıclass ile bu işlemi kolaylıkla kullanmamıza olanak verir.
Tabi kullanımı bu kadar kısıtlamamak gerekir. Sbc ile iki farklı sunucu yada aynı sunucu içinde iki farklı tablo da kopyalanabilir.

Örnek

Excel dosyasındaki verileri DataTable nesnesine dolduracağız.  Sonar Sbc ile DataTable içindeki verileri örnek bir tabloya ekleyeceğiz.

Örnek Excel dosyası
Excel

Hedef tablo
Table

Excel dosyasındaki alanlar ile tablo alanlarını bilerek farklı isimlendirdim. Sbc sınıfının bir özelliği de bu gibi durumlarda alanları adresleyebilmesidirmapping.