sql >> Database teknologi >  >> RDS >> Sqlserver

Importer CSV-fil til SQL Server

Baseret SQL Server CSV-import

1) CSV-fildataene kan have , (komma) imellem (Ex:description), så hvordan kan jeg få import til at håndtere disse data?

Løsning

Hvis du bruger , (komma) som afgrænsning, så er der ingen måde at skelne mellem et komma som feltterminator og et komma i dine data. Jeg ville bruge en anden FIELDTERMINATOR som || . Koden ville se ud, og denne vil håndtere komma og enkelt skråstreg perfekt.

2) Hvis klienten opretter csv'en fra excel, er de data, der har komma, omgivet af " ... " (doble anførselstegn) [som nedenstående eksempel] så hvordan kan importen håndtere dette?

Løsning

Hvis du bruger BULK insert, er der ingen måde at håndtere dobbelte anførselstegn, data vil blive indsat med dobbelte anførselstegn i rækker. Efter indsættelse af data i tabellen kan du erstatte disse dobbelte anførselstegn med ' '.

update table
set columnhavingdoublequotes = replace(columnhavingdoublequotes,'"','')

3) Hvordan sporer vi, om nogle rækker har dårlige data, hvilken import springer over? (springer import over rækker, der ikke kan importeres)?

Løsning

For at håndtere rækker, der ikke er indlæst i tabellen på grund af ugyldige data eller format, kunne behandles ved hjælp af ERRORFILE-egenskaben, angiv fejlfilnavnet, det vil skrive rowshaving-fejlen til fejlfilen. kode skal se ud.

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
    ERRORFILE = 'C:\CSVDATA\SchoolsErrorRows.csv',
    TABLOCK
    )


  1. Sådan bruger du SqlTransaction i C#

  2. Sådan indsætter og sletter du data i PostgreSQL

  3. Sådan importeres en SQL Server-database til Access 2016

  4. MariaDB Java Connector Driver Ydeevne