2013-10-30 26 views
7

Bir csv dosyasının sütunlarını bir hedef tablonun belirli sütunlarına toplu olarak eklemek istiyorum. Açıklama - hedef tablonun csv dosyasımdan daha fazla sütunu var. Bu yüzden, csv dosya sütunlarının BULK INSERT kullanarak doğru hedef sütunlara gitmesini istiyorum.BULK INSERT belirli sütunlara mı?

Bu mümkün mü? Evet ise, o zaman nasıl yaparım? Bunlar veri eklendiği yerde kontrol edebilirsiniz nasıl görünmüyor http://blog.sqlauthority.com/2008/02/06/sql-server-import-csv-file-into-sql-server-using-bulk-insert-load-comma-delimited-file-into-sql-server/

ve http://www.codeproject.com/Articles/439843/Handling-BULK-Data-insert-from-CSV-to-SQL-Server

BULK INSERT dbo.TableForBulkData 
FROM 'C:\BulkDataFile.csv' 
WITH 
(
FIELDTERMINATOR = ',', 
ROWTERMINATOR = '\n' 
) 

-

Ben de öğretici ve kodu gördü.

+0

Kod istemekle ilgili sorular, çözülmekte olan sorunun en az düzeyde anlaşıldığını göstermelidir. ** Denenen çözümler **, ** neden çalışmadılar ** ve beklenen sonuçlar. – showdev

+0

Sütun ekleyerek ne demek istiyorsun? Tüm verileri istemiyor musun? Ne sahip olduğunu ve onunla tam olarak ne yapmak istediğini göstermelisin. –

+0

Format Dosyasını kullanmanız gerekecektir. –

cevap

8

Evet, bunu yapabilirsiniz. En kolay yol, hedef dosyadan Select s değerinin bir Görünüm oluşturmasıdır. Bu, kaynak dosyasında göründükleri sıraya göre, verinin olmasını istediğiniz sütunları listeler. Ardından, doğrudan Tabloya değil, Görünümünüze BULK INSERT.

+0

Vay! Bu nasıl çalışıyor ? Yukarıdaki koddaki myview ile mytable değiştirirseniz, gerçekte csv dosyasımdaki veriler gerçek tabloya taşınacak mı? – Steam

+0

Yup. Gerçekten öyle olacak. – RBarryYoung

+0

Teşekkürler. Tüm seçenekleri keşfettikten sonra hayal kırıklığına uğradım. Ben C# ve biraz ssis ile gidiyorum. Csv dosyaları yerine SQL deyimlerine geçiyorum. Bana bu alternatif yolu gösterdiğiniz için teşekkürler. Statik, ama bilmek güzel. – Steam