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

Xuất bảng thành tệp có tiêu đề cột (tên cột) bằng tiện ích bcp và SQL Server 2008

Phương pháp này tự động xuất tên cột cùng với dữ liệu hàng của bạn bằng BCP.

Tập lệnh ghi một tệp cho các tiêu đề cột (đọc từ INFORMATION_SCHEMA.COLUMNS table) sau đó nối một tệp khác với dữ liệu bảng.

Kết quả cuối cùng được kết hợp thành TableData.csv trong đó có tiêu đề và dữ liệu hàng. Chỉ cần thay thế các biến môi trường ở trên cùng để chỉ định Máy chủ, Cơ sở dữ liệu và tên Bảng.

set BCP_EXPORT_SERVER=put_my_server_name_here
set BCP_EXPORT_DB=put_my_db_name_here
set BCP_EXPORT_TABLE=put_my_table_name_here

BCP "DECLARE @colnames VARCHAR(max);SELECT @colnames = COALESCE(@colnames + ',', '') + column_name from %BCP_EXPORT_DB%.INFORMATION_SCHEMA.COLUMNS where TABLE_NAME='%BCP_EXPORT_TABLE%'; select @colnames;" queryout HeadersOnly.csv -c -T -S%BCP_EXPORT_SERVER%

BCP %BCP_EXPORT_DB%.dbo.%BCP_EXPORT_TABLE% out TableDataWithoutHeaders.csv -c -t, -T -S%BCP_EXPORT_SERVER%

set BCP_EXPORT_SERVER=
set BCP_EXPORT_DB=
set BCP_EXPORT_TABLE=

copy /b HeadersOnly.csv+TableDataWithoutHeaders.csv TableData.csv

del HeadersOnly.csv
del TableDataWithoutHeaders.csv

Lưu ý rằng nếu bạn cần cung cấp thông tin đăng nhập, hãy thay thế tùy chọn -T bằng -U my_username -P my_password

Phương pháp này có ưu điểm là luôn có tên cột đồng bộ với bảng bằng cách sử dụng INFORMATION_SCHEMA.COLUMNS . Nhược điểm là nó tạo ra các tệp tạm thời. Microsoft thực sự nên sửa tiện ích bcp để hỗ trợ điều này.

Giải pháp này sử dụng thủ thuật nối hàng SQL từ đây kết hợp với các ý tưởng bcp từ đây



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Làm thế nào để tìm các hàng liên tiếp dựa trên giá trị của một cột?

  2. Nhận hàng cập nhật

  3. Cách lưu trữ hình ảnh trong cột bảng cơ sở dữ liệu SQL Server

  4. Có thể sử dụng SqlGeography với Linq to Sql không?

  5. Làm cách nào để lấy danh sách ID từ bảng SQL dưới dạng chuỗi giá trị được phân tách bằng dấu phẩy?