SQL Server veritabanına CSV dosyası nasıl yüklenir?

26 Temmuz 2011
Bu yazıyı beğendiysen paylaşmayı unutma :)
Pin It

CSV, İngilizce “Comma-Separated Variables” yani “Virgülle ayrılmış veriler” anlamına geliyor ve bir metin veritabanı gibi kullanılabiliyor. Elinizde bir CSV dosyası var ve bunu Sql Server’ınızdaki tablonuza yüklemek istiyorsanız, o da bu yazının konusunu oluşturuyor. Zira bu konuya çözüm bulmadan önce bugün 195 MB’lık bir CSV dosyası Sql Server’a yüklenmek için bana bakıyordu.

Sorunun çözümü için hemen mutfağa geçelim..

Bunun için öncelikle CSV dosyasının içeriğini kopyalayacağımız tabloyu oluşturalım. Ancak burada tablomuzu oluştururken dikkat etmemiz gereken nokta, CSV dosyasının yapısına uygun sayıda ve tipte oluşturmak.

Örnek CSV dosyamızın yapısı şu şekilde;

16777216,”16777471″,”AU”,”AUSTRALIA”,”QUEENSLAND”,”MILTON”
16909056,”16909311″,”AU”,”AUSTRALIA”,”QUEENSLAND”,”MILTON”
17435136,”17435391″,”AU”,”AUSTRALIA”,”QUEENSLAND”,”MILTON”

Hemen bunu uygun olarak tablomuzu oluşturalım.

CREATE TABLE [dbo].[Location](
[Ip1] [nvarchar](50) NULL,
[Ip2] [nvarchar](50) NULL,
[UlkeKisa] [nvarchar](50) NULL,
[UlkeUzun] [nvarchar](50) NULL,
[Bolge] [nvarchar](100) NULL,
[Sehir] [nvarchar](100) NULL
)

Sıra geldi CSV dosyasındaki verileri tablomuza aktarmaya. Bunun için aşağıdaki kodu çalıştırmanız yeterli.

BULK
INSERT Location
FROM 'C:\IP-LOCATION.CSV'
WITH
(
FIELDTERMINATOR = ',',
ROWTERMINATOR = '\n'
)

Sql kodumuzda kullandığımız BULK INSERT (Transact-SQL) deyimi, belirli formatta oluşturduğunuz bir veri yapısını Sql Server’a aktarmakta kullanılıyor. Vermiş olduğum bağlantıdan detaylarını öğrenebilirsiniz. Sql Kodumuz içerisinde bulunan FIELDTERMINATOR tablo alanlarınızı ayrıştırmak, ROWTERMINATOR ise her bir satırı yani kaydı, belirtilen koşul ile ayrıştırmak için kullanılıyor.

Benzer Yazılar


DeliPenguen'i Google+'da bulun



  1. 1 Haziran 2012 - 07:16

    teşekkürler