Metode ini secara otomatis menampilkan nama kolom dengan data baris Anda menggunakan BCP.
Script menulis satu file untuk header kolom (baca dari INFORMATION_SCHEMA.COLUMNS
table) kemudian menambahkan file lain dengan data tabel.
Hasil akhir digabungkan menjadi TableData.csv
yang memiliki data header dan baris. Cukup ganti variabel lingkungan di bagian atas untuk menentukan nama Server, Database, dan Tabel.
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
Perhatikan bahwa jika Anda perlu memberikan kredensial, ganti opsi -T dengan -U my_username -P my_password
Metode ini memiliki keuntungan karena selalu menyinkronkan nama kolom dengan tabel dengan menggunakan INFORMATION_SCHEMA.COLUMNS
. Kelemahannya adalah ia membuat file sementara. Microsoft harus benar-benar memperbaiki utilitas bcp untuk mendukung ini.
Solusi ini menggunakan trik penggabungan baris SQL dari sini dikombinasikan dengan ide bcp dari sini