Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

Importuj plik CSV do SQL Server

Bazujący na SQL Server import CSV

1) Dane pliku CSV mogą mieć , (przecinek) pomiędzy (np.:opis), więc jak mogę dokonać importu obsługującego te dane?

Rozwiązanie

Jeśli używasz , (przecinek) jako ogranicznik, to nie ma sposobu na odróżnienie przecinka jako terminatora pola od przecinka w danych. Użyłbym innego FIELDTERMINATOR jak || . Kod wyglądałby tak, że doskonale poradzi sobie z przecinkiem i pojedynczym ukośnikiem.

2) Jeśli klient utworzy plik csv z programu Excel, dane, które mają przecinek, są ujęte w " ... " (podwójne cudzysłowy) [jak w poniższym przykładzie], więc jak import może to obsłużyć?

Rozwiązanie

Jeśli używasz wstawiania BULK, nie ma możliwości obsługi podwójnych cudzysłowów, dane zostaną wstawione z podwójnymi cudzysłowami do wierszy. Po wstawieniu danych do tabeli możesz zastąpić te podwójne cudzysłowy ' '.

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

3) W jaki sposób śledzimy, czy niektóre wiersze mają złe dane, które importowane pomijają? (czy import pomija wiersze, których nie można zaimportować)?

Rozwiązanie

Aby obsłużyć wiersze, które nie są ładowane do tabeli z powodu nieprawidłowych danych lub formatu, mogą być obsługiwane za pomocą właściwości ERRORFILE, podaj nazwę pliku błędu, zapisze on błąd współdzielenia wierszy w pliku błędu. kod powinien wyglądać.

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. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SQLServer a StateServer dla wydajności stanu sesji ASP.NET

  2. Pobierz ostatnio wstawiony identyfikator wiersza (z instrukcją SQL)

  3. Pobieranie wartości zwracanej z JDBC MSSQL

  4. Zapytanie SQL, aby wybrać ciąg między dwoma znanymi ciągami

  5. Funkcja COALESCE w TSQL