Mai mult
Import fișier CSV în SQL Server
Caut ajutor pentru a importa un `.csv fișier în SQL Server folosind mai mare parte a INTRODUCE și am câteva întrebări de bază.
Probleme:
-
Fișierul CSV de date este posibil
,
(virgula) în între (Ex: descriere), deci cum pot face import de manipulare aceste date? -
În cazul în care clientul creează CSV din Excel atunci datele care au virgulă sunt închise în termen de
""
(ghilimele duble) [ca în exemplul de mai jos] deci, cum a face import pot descurca cu asta? -
Cum putem urmări dacă unele rânduri au rău de date, care importa sare? (nu importa sare peste rânduri că nu sunt de import)
Aici este proba CSV cu antet:
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.
Și instrucțiunea SQL de import:
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
Bazat pe SQL Server Import CSV
Soluție
Daca're folosind
,
(virgula) ca delimitator, atunci nu există nici o modalitate de a diferenția între o virgulă ca un câmp terminator și o virgulă în date. Mi-ar folosi un altFIELDTERMINATOR "ca"||
. Codul ar arata ca si aceasta se va ocupa de virgulă și un singur slash perfect.Soluție
Daca're folosind mai mare parte a introduce atunci nu există nici o modalitate de a gestiona dublu citate, datele vor fi introdus cu ghilimele duble în rânduri. după introducerea datelor în tabel-ai putea înlocui acele ghilimele duble cu '` `'.
Soluție
Să se ocupe de rânduri care sunt't încărcat în masă pentru a-date invalide sau format, ar putea fi mâner cu ajutorul ERRORFILE proprietate, specificați eroare de nume de fișier, se va scrie rânduri având eroare la eroare de fișier. codul ar trebui să arate.
Trebuie mai întâi să creați un tabel în baza de date în care va fi importați fișierul CSV. După masă este creat, urmați pașii de mai jos.
• Log în baza de date folosind SQL Server Management Studio
• Click dreapta pe baza de date și selectați
Sarcini -> Import Date...
• Faceți clic pe `Next > butonul
• Pentru Sursa de Date, selectați Plat Fișier Sursă
. Apoi, utilizați butonul Browse pentru a selecta fișierul CSV. Petrece ceva timp configurați modul în care doriți ca datele să fie importate înainte de a face clic pe
Next > buton.• Pentru Destinație, selectați corect furnizor de baze de date (de exemplu pentru SQL Server 2012, puteți utiliza SQL Server Client Nativ 11.0). Introduceți numele Serverului. Verificați Utilizarea SQL Server Authentication
buton radio. Introduceți numele de Utilizator, Parola, și a bazei de Date înainte de a face clic pe
Next > buton.• Pe Selectați Sursa Tabele și Vizualizări fereastră, puteți Edita Mapările înainte de a face clic pe `Next > buton.
• Verificați Fugi imediat
casetă de selectare și faceți clic pe
Next > buton.• Faceți clic pe butonul
Finish
pentru a rula pachetul.Mai sus a fost găsit pe acest ul (l-am folosit si testat):
Ar trebui să utilizați FORMAT = 'CSV', FIELDQUOTE = '"' opțiuni:
Cel mai bun, mai rapid și mai simplu mod de a rezolva virgulă în datele problema este de a utiliza Excel pentru a salva un fișier separate de virgulă după Windows' separatorul de listă setare pentru a altceva decât o virgulă (cum ar fi o țeavă). Acest lucru va genera apoi o țeavă (sau orice altceva) fișier separat pentru că aveți posibilitatea să importați apoi. Acest lucru este descris aici.
Brazi aveți nevoie pentru a importa fișierul CSV în Tabelul de Date
Apoi, puteți introduce rânduri în vrac, folosind SQLBulkCopy
Aici's cum mi-ar rezolva problema:
Doar Salva ca un Fișier CSV XLS Sheet in excel(Procedând astfel, nu m't trebuie să vă faceți griji despre delimitiers. Excel's format foaie de calcul va fi citit ca un tabel și importate direct într-un Tabel SQL)
Importați Fișierul Folosind SSIS
Scrie un Script Personalizat din import manager pentru a omite/modifica datele pe care le're în căutarea pentru.(Sau de a rula un script master pentru a examina datele pe care le're în căutarea de a elimina)
Noroc.
Pentru că ei nu folosesc SQL import wizard, pașii ar fi după cum urmează:
Click dreapta pe baza de date în opțiunea sarcini de import date,
După ce expertul este deschis, vom selecta tipul de date să fie implicită. În acest caz ar fi
Vom selecta fișierul CSV, puteți configura tipul de date din tabelele de la CSV, dar cel mai bine este să-l aducă de la CSV.
În funcție de tipul de autentificare vom selecta, odată ce se face acest lucru, o opțiune foarte important vine.
(de obicei, nu pornind de la 1), în schimb dacă avem o coloana cu id-ul în CSV vom selecta enable id-ul introduce, următorul pas este de a termina expertul, putem vedea schimbări aici.
Pe de altă parte, în fereastra de mai jos poate veni alerte, sau avertismente idealul este de a ignora acest lucru, doar dacă pleacă de eroare este necesar să se acorde atenție.
Acest link are imagini.
Importați fișierul în Excel prin prima deschidere excel, apoi merge la DATE, import din TXT Fișier, alegeți extensia csv, care va păstra 0 prefixate valori, și de a salva acea coloană ca TEXT, deoarece excel va scadea lider 0 în caz contrar (NU dublu clic pentru a deschide cu Excel dacă aveți date numerice într-un domeniu incepand cu 0 [zero]). Apoi salva ca o Fila fișier Text Delimitat. Atunci când importul în excel veți obține o opțiune pentru a salva cât mai GENERAL, TEXT, etc.. alege TEXT, astfel încât citate în mijlocul unui șir de caractere într-un câmp ca YourCompany,LLC sunt conservate, de asemenea,...
Aș vrea să pot folosi FORMATUL și Fieldquote funcționalitate, dar care nu pare a fi acceptate în versiunea mea de SSMS
Știu că nu sunt acceptate de răspuns, dar totuși, vreau să-mi împart scenariu care poate ajuta cineva sa rezolv problema lor INSTRUMENTE
SCENARIU am fost de încărcare set de date care's în format CSV, care a fost mai târziu să fie afișate la Vedere am încercat să folosesc cea mai mare parte a încărca, dar am's în imposibilitatea de a încărca ca `VRAC ÎNCĂRCARE a fost utilizarea
și Excel celula a fost, de asemenea, folosind
,
cu toate acestea, de asemenea, am putea't folosi Plat fișier sursă` direct pentru că am fost folosind Codul-Prima Abordare și de a face că a făcut doar modelul din SSMS DB, nu în modelul de la care am avut de a utiliza proprietățile mai târziu.SOLUȚIE