Sqlserver
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Sqlserver

Nhập CSV trong SQL Server 2008

Bạn có thể sử dụng tệp định dạng không phải xml để chỉ định một dấu phân tách khác nhau trên mỗi cột. Đối với các giá trị được đặt trong dấu ngoặc kép và được phân tách bằng các tab, dấu phân cách có thể là \",\" . Bạn sẽ phải thêm một cột không sử dụng ban đầu để ghi lại câu trích dẫn đầu tiên. Ví dụ:để đọc tệp này:

"row1col1","row1col2","row1col3"
"row2col1","row2col2","row2col3"
"row3col1","row3col2","row3col3"

Bạn có thể sử dụng tệp định dạng này:

10.0
4
1  SQLCHAR 0 50 "\""     0 unused ""
2  SQLCHAR 0 50 "\",\""  1 col1   ""
3  SQLCHAR 0 50 "\",\""  2 col2   ""
4  SQLCHAR 0 50 "\"\r\n" 3 col3   ""

(Số trên dòng đầu tiên phụ thuộc vào phiên bản SQL Server. Số trên dòng thứ hai là số cột để đọc. Đừng quên điều chỉnh nó .)

bulk insert lệnh chấp nhận formatfile = 'format_file_path' tham số nơi bạn có thể chỉ định tệp định dạng. Ví dụ:

BULK INSERT YourTable
FROM 'c:\test\test.csv'
WITH (FORMATFILE = 'c:\test\test.cfmt')

Điều này dẫn đến:

select * from YourTable
-->
col1        col2        col3
row1col1    row1col2    row1col3
row2col1    row2col2    row2col3
row3col1    row3col2    row3col3


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Định dạng của chuỗi khởi tạo không phù hợp với đặc điểm kỹ thuật bắt đầu từ chỉ mục 0

  2. Làm cách nào để chọn một chuỗi giữa hai chuỗi trong một cột trong SQL Server?

  3. Chạy Python Script từ MSSQL

  4. Tránh NULL cột bằng cách sử dụng DEFAULT Empty String

  5. Tham gia ba bảng với các tham gia khác ngoài INNER JOIN