Lebih
Impor file CSV ke SQL Server
Saya mencari bantuan untuk mengimpor .csv
file ke SQL Server menggunakan BULK INSERT
dan aku punya beberapa pertanyaan dasar.
Masalah:
-
CSV file data yang mungkin telah
,
(koma) di antara (Ex: deskripsi), jadi bagaimana saya bisa membuat impor penanganan data-data ini? -
Jika klien membuat CSV dari Excel maka data-data yang telah koma yang tertutup dalam
","
(kutip ganda) [sebagai contoh di bawah ini] jadi bagaimana melakukan impor dapat menangani hal ini? -
Bagaimana kita melacak jika beberapa baris yang memiliki data yang buruk, yang impor melompat? (tidak impor melompat baris yang tidak diimpor)
Berikut adalah contoh CSV dengan header:
Name,Class,Subject,ExamDate,Mark,Description
Prabhat,4,Math,2/10/2013,25,Test data for prabhat.
Murari,5,Science,2/11/2013,24,"Test data for his's test, where we can test 2nd ROW, Test."
sanjay,4,Science,,25,Test Only.
Dan pernyataan SQL untuk impor:
BULK INSERT SchoolsTemp
FROM 'C:\CSVData\Schools.csv'
WITH
(
FIRSTROW = 2,
FIELDTERMINATOR = ',', --CSV field delimiter
ROWTERMINATOR = '\n', --Use to shift the control to next row
TABLOCK
)
168
9
Berdasarkan SQL Server Impor CSV
Solusi
Jika anda're menggunakan
,
(koma) sebagai pemisah, maka tidak ada cara untuk membedakan antara koma sebagai bidang terminator dan koma pada data anda. Saya akan menggunakan berbagaiFIELDTERMINATOR
like||
. Kode akan terlihat seperti ini akan menangani koma dan garis miring dengan sempurna.Solusi
Jika anda're menggunakan BULK insert maka tidak ada cara untuk menangani tanda kutip ganda, data akan dimasukkan dengan tanda kutip ganda ke dalam baris. setelah memasukkan data ke dalam tabel anda bisa mengganti mereka dengan tanda kutip ganda '` `'.
Solusi
Untuk menangani barisan yang tidak't dimuat ke meja karena data yang tidak valid atau format, bisa handle menggunakan ERRORFILE properti, menentukan kesalahan nama file, itu akan menulis baris memiliki kesalahan untuk kesalahan file. kode harus terlihat seperti.
Anda harus terlebih dahulu membuat tabel dalam database anda di mana anda akan dapat mengimpor file CSV. Setelah tabel dibuat, ikuti langkah-langkah di bawah ini.
• Login ke database menggunakan SQL Server Management Studio
• Klik kanan pada database dan pilih
Tugas -> Impor Data...
• Klik
Berikutnya >
tombol• Untuk Sumber Data, pilih
Flat File Source
. Kemudian gunakan tombol Browse untuk memilih file CSV. Menghabiskan beberapa waktu mengkonfigurasi bagaimana anda ingin data yang akan diimpor sebelum mengklikNext >
tombol.• Untuk Tujuan, pilih yang benar penyedia database (misalnya untuk SQL Server 2012, anda dapat menggunakan SQL Server Native Client 11.0). Masukkan nama Server. Periksa
Menggunakan SQL Server Authentication
radio button. Masukkan nama Pengguna, Password, dan Database sebelum mengklikNext >
tombol.• Pada Sumber Pilih Tabel dan Tampilan jendela, anda dapat Mengedit Pemetaan sebelum mengklik
Next >
tombol.• Periksa
segera Berjalan
kotak centang dan klikBerikutnya >
tombol.• Klik pada tombol
Finish
untuk menjalankan paket.Di atas ditemukan pada website (saya telah digunakan dan diuji):
Anda harus menggunakan FORMAT = 'CSV', FIELDQUOTE = '",' pilihan:
Terbaik, tercepat dan cara termudah untuk menyelesaikan koma dalam masalah data adalah dengan menggunakan Excel untuk menyimpan file dipisahkan koma setelah mengatur Windows' daftar pemisah pengaturan untuk sesuatu yang lain dari koma (seperti pipa). Hal ini kemudian akan menghasilkan pipa (atau apapun) yang dipisahkan file untuk anda yang kemudian dapat anda impor. Hal ini dijelaskan di sini.
Pohon-pohon cemara yang anda butuhkan untuk mengimpor file CSV ke Tabel Data
Kemudian anda dapat menyisipkan baris massal menggunakan SQLBulkCopy
Berikut ini's bagaimana saya akan menyelesaikannya:
Hanya Menyimpan File CSV sebagai XLS Sheet di excel(Dengan demikian, anda tidak't perlu khawatir tentang delimitiers. Excel's format spreadsheet akan dibaca sebagai sebuah tabel dan diimpor langsung ke dalam Tabel SQL)
Import File Menggunakan SSIS
Menulis Skrip Khusus di import manager untuk menghilangkan/mengubah data anda're looking for.(Atau menjalankan master script untuk meneliti data anda'kembali mencari untuk menghapus)
Good Luck.
Karena mereka tidak menggunakan SQL import wizard, langkah-langkah sebagai berikut:
Klik kanan pada database dalam pilihan tugas-tugas untuk mengimpor data,
Setelah wizard terbuka, kita pilih jenis data yang akan tersirat. Dalam kasus ini, itu akan menjadi
Kita pilih file CSV, anda dapat mengkonfigurasi tipe data dari tabel dalam CSV, tapi yang terbaik adalah untuk membawa itu dari CSV.
Tergantung pada jenis otentikasi yang kita pilih, setelah ini dilakukan, sangat penting opsi datang.
(biasanya tidak dimulai dari 1), sebaliknya jika kita memiliki kolom dengan id di CSV yang kita pilih aktifkan id insert, langkah berikutnya adalah untuk mengakhiri wizard, kita dapat meninjau perubahan-perubahan di sini.
Di sisi lain, pada jendela berikut mungkin datang peringatan, atau peringatan yang ideal adalah untuk mengabaikan hal ini, hanya jika mereka meninggalkan kesalahan diperlukan untuk membayar perhatian.
Link ini memiliki gambar.
Mengimpor file ke Excel dengan terlebih dahulu membuka excel, maka akan DATA, impor dari File TXT, pilih ekstensi csv yang akan melestarikan 0 diawali nilai-nilai, dan menyimpan kolom TEKS karena excel akan turun awalan 0 jika tidak (JANGAN double klik untuk membuka dengan Excel jika anda memiliki data numerik di lapangan dimulai dengan 0 [nol]). Kemudian simpan sebagai file Teks Tab Delimited. Ketika anda impor ke excel anda mendapatkan pilihan untuk menyimpan sebagai JENDERAL, TEXT, dll.. pilih TEKS sehingga kutipan di tengah-tengah string di lapangan seperti Perusahaananda,LLC yang diawetkan juga...
Aku berharap aku bisa menggunakan FORMAT dan Fieldquote fungsi tapi itu tampaknya tidak didukung dalam versi saya SSMS
Saya tahu bahwa ada jawaban yang diterima tapi tetap saja, saya ingin berbagi skenario yang mungkin membantu seseorang untuk memecahkan masalah mereka ALAT
**SKENARIO saya memuat dataset yang's dalam format CSV yang kemudian akan ditampilkan pada View saya mencoba untuk menggunakan sebagian besar beban tapi aku's tidak dapat memuat sebagai
BULK LOAD
itu menggunakandan Excel cell juga menggunakan
,
namun, saya juga tidak't menggunakanFlat file source
langsung karena saya menggunakanKode-Pendekatan Pertama
dan melakukan hal itu hanya dibuat model dalam SSMS DB, tidak dalam model dari mana saya harus menggunakan sifat nanti.SOLUSI
Add-Migration
di NuGet paket konsol