SQL Server’da Bulk Insert ile Veri Aktarımı

Herkese merhaba,

Bu yazıda size SQL Server’da Bulk insert ile veri aktarımının nasıl yapılacağından bahsedeceğim.

SQL Server’da dışardan bir dosya kullanarak insert yapma işlemine gereksinim duyabiliriz Bu makalede CSV olarak kaydedilen bir dosyadaki verilerin SQL Server’a insert edilmesi işlemini gerçekleştireceğiz. Bu işlemi yaparken kolonların sırası ile insert edeceğiniz tablodaki alanlarla eşleşmesi gerekmektedir. Örnek işlemi aşağıda inceleyelim.

İlk olarak excelde bir dosya hazırlıyoruz. Bu dosya şu şekilde olacak.

Görüldüğü üzere İller diye bir tablo başlığı ve içinde il isimleri. Bu dosyayı Dosya -> Farklı Kaydet diyerek kaydediyoruz.

Bu seçeneğe tıkladıktan sonra karşınıza şu ekran gelecek.

Burada Bilgisayar kısmına çift tıklayınca aşağıdaki ekran karşınıza gelecek.

Dosya adına iller denilir ve CSV (Virgülle ayrılmış) seçilerek masaüstüne kaydedilir. Devam etmek istiyor musunuz gibi bir uyarı çıkarsa Evet diyerek işlemi tamamlayın. Sonrasında C klasörüne gidilerek Temp adı altında bir klasör açılır. Aşağıda görmektesiniz.

Biraz önce masaüstüne kaydedilen iller adındaki csv dosyasını bu klasörün içine atalım. Son durum aşağıdaki gibi olmalı.

İşlem sonrasında sıra geldi güvenlik ayarlarını yapmaya. Eğer güvenlik ayarlarını yapmazsak aşağıdaki hatayı göreceksiniz.

Cannot bulk load because the file could not be opened. Operating system error code 5 (Access is denied.)

Bu hatayı görmemek için temp klasörünün üstünde sağ tık yapıyoruz.

Özellikler kısmına tıkladıktan sonra aşağıdaki ekranı göreceksiniz.

Güvenlik sekmesine tıklıyoruz. Sonrasında Düzenle butonuna tıklıyoruz. Aşağıdaki ekranı göreceksiniz.

Burada Ekle butonuna tıklıyoruz.

Bu kısımda Gelişmiş butonuna tıklanarak aşağıdaki ekran görülür.

Şimdi Bul butonuna tıklanır. Aşağıdaki sonuç görülür.

Burada kırmızı kare içindeki alan seçilir ve Tamam butonuna tıklanır. Bu işlem sonrası aşağıdaki ekranı göreceksiniz.

Bu ekranda da Tamam butonuna tıklanır.

Kırmızı alan içindeki ifadeyi kendi bilgisayarınızda gördü iseniz Tamam diyerek işleme devam ediyorsunuz. Son olarak bir ekran daha açık kalmış olacak. O ekrana da Tamam diyerek bu alandaki işlemi bitiriyoruz.

Sıra geldi kodları yazmaya.

USE test --Veritabanı burada seçilir (Kendi veritabanınızı seçeceksiniz.)
GO
BULK INSERT IllerTablosu -- Tablo adını burada yazacaksınız (Hangi tabloya yapıyorsanız)
FROM 'C:\Temp\iller.csv'  -- Temp klasörü oluşturun ve o klasörün altına gönderin.
WITH
(
 KEEPNULLS, --Null değerleri tabloya insert etmek için
 FIRSTROW = 2, --Hangi satırdan başlayacak
 FIELDTERMINATOR =',', --CSV ayırıcı
 ROWTERMINATOR ='\n' --Sonraki satıra kaydırma işlemi burada gerçekleşir
)

SELECT * FROM IllerTablosu

Kod kısmında herşeyi detaylı bir şekilde anlatmaya çalıştım. Tablo adınızı ve dosya yolunuzu yazarken dikkat edin. Ayrıca veritabanınızı düzgün seçtiğinizden emin olur. Son olarak CSV dosyanızda Türkçe karakter sıkıntısı çıkma olasılığı olabilir. Bu konuda verilerinizin yedeğini alarak işlemlerinizi yapın.

Herkese çalışma hayatında ve yaşamında başarılar kolaylıklar.

SQL Server Eğitimleri Kanalına Abone Olun

Şunlar makaleler de hoşunuza gidebilir