Menyimpan hasil dengan header di Sql Server Management Studio

183

Saya menggunakan SQL Server Management Studio.

Saya ingin menyimpan hasil kueri ke file excel.

Saya memilih "simpan sebagai" dan kemudian simpan ke file CSV yang dapat saya buka di excel. Semua baik kecuali saya kehilangan tajuk kolom, ada ide bagaimana saya membuatnya diekspor?

dublintech
sumber

Jawaban:

274

Tools> Options> Query Results> SQL Server> Results to Text (or Grid if you want)>Include columns headers in the result set

Anda mungkin perlu menutup dan membuka kembali SSMS setelah mengubah opsi ini.

Pada SQL Editor Toolbar Anda dapat memilih save to file tanpa harus memulai ulang SSMS

Diego
sumber
35
+1, Mengujinya dan berfungsi: Alat -> Opsi -> Hasil Kueri -> SQL Server -> Hasil ke Kotak, lalu centang 'Sertakan tajuk kolom saat menyalin atau menyimpan hasil'.
Jeff Ogata
46
Ini berfungsi untuk SSMS 2012 - Anda harus memulai ulang SSMS agar pengaturan berlaku.
SliverNinja - MSFT
17
Untuk mengonfirmasi, Anda harus menutup dan membuka kembali SSMS agar opsi ini diterapkan.
Christopher King
8
Seperti kata Christopher, Anda harus memulai kembali SSMS agar perubahannya berfungsi.
Rob
8
Untuk SSMS 2016 Anda juga masih harus memulai ulang agar perubahan ini dapat diterapkan.
Chris Haas
36

Coba Panduan Ekspor. Dalam contoh ini saya memilih seluruh tabel, tetapi Anda dapat dengan mudah menentukan kueri:

masukkan deskripsi gambar di sini

masukkan deskripsi gambar di sini

masukkan deskripsi gambar di sini

masukkan deskripsi gambar di sini

(Anda juga dapat menentukan kueri di sini)

masukkan deskripsi gambar di sini

masukkan deskripsi gambar di sini

masukkan deskripsi gambar di sini

masukkan deskripsi gambar di sini

masukkan deskripsi gambar di sini

John Dewey
sumber
4
Terima kasih untuk itu. Tapi ini untuk tabel. Pertanyaan saya adalah pertanyaan.
dublintech
1
Anda juga dapat menentukan kueri di langkah keempat - "Tentukan Salin atau Kueri Tabel".
John Dewey
Saya mencoba semua pendekatan lain, dan ini adalah satu-satunya yang bekerja untuk tipe data campuran saya.
DOK
3
Sementara ini bekerja sangat menyakitkan dan memakan waktu. SQL Server dan Excel sama-sama produk MS, sungguh menakjubkan bahwa tidak ada tombol ekspor sederhana di tahun 2013!
Andre
34

Kemungkinan lain adalah menggunakan clipboard untuk menyalin dan menempelkan hasilnya langsung ke Excel. Berhati-hatilah dengan jenis umum kolom Excel, karena kadang-kadang dapat memiliki hasil yang tidak terduga, tergantung pada data Anda. CTL-Adi mana saja di kisi hasil, dan kemudian klik kanan:

masukkan deskripsi gambar di sini

Jika Anda memiliki masalah dengan format Umum Excel melakukan konversi yang tidak diinginkan, pilih kolom kosong di Excel sebelum Anda tempel dan ubah format menjadi "teks".

John Dewey
sumber
Ini bagus, kecuali untuk pemformatan Excel. Angka dengan angka nol di depan (mis. Nomor ponsel) menjatuhkan angka nol di Excel. Ada masalah pemformatan lain yang menunggu, gunakan dengan risiko Anda sendiri. Terima kasih Microsoft!
e_i_pi
12

Paling tidak di SQL Server 2012, Anda bisa klik kanan di jendela kueri dan pilih Opsi Kueri. Dari sana Anda dapat memilih Sertakan Header untuk kisi dan / atau teks dan buat Save As berfungsi seperti yang Anda inginkan tanpa memulai ulang SSMS.

Anda masih perlu mengubahnya di Tools-> Options di menu bar untuk memiliki jendela permintaan baru menggunakan pengaturan tersebut secara default.

Michael McCormick
sumber
7

Masalah yang sama ada di Visual Studio, berikut ini cara memperbaikinya di sana:

Pergi ke:

Tools > Options > SQL Server Tools > Transact-SQL Editor > Query Results > Results To Grid

Sekarang klik kotak centang untuk true: "Sertakan tajuk kolom saat menyalin atau menyimpan hasil"

Nicholas Petersen
sumber
6

Pilih hasil Anda dengan mengklik di sudut kiri atas, klik kanan dan pilih "Salin dengan Header". Tempel di excel. Selesai!

Chris Dimitriu
sumber
4

Pengaturan yang telah disarankan untuk berubah dalam jawaban yang diterima @ Diego mungkin baik jika Anda ingin mengatur opsi ini secara permanen untuk semua sesi kueri mendatang yang Anda buka dalam SQL Server Management Studio (SSMS). Ini biasanya tidak demikian. Juga, mengubah pengaturan ini memerlukan memulai ulang aplikasi SQL Server Management Studio (SSMS). Ini lagi-lagi pengalaman yang 'tidak terlalu bagus' jika Anda memiliki banyak jendela sesi permintaan terbuka yang belum disimpan dan Anda berada di tengah-tengah beberapa proses debug.

SQL Server memberikan banyak pilihan untuk mengubahnya setiap sesi yang sangat cepat, praktis dan nyaman . Saya merinci langkah-langkah di bawah ini menggunakan jendela opsi permintaan:

  1. Klik kanan di jendela editor kueri> Klik Query Options...di bagian bawah menu konteks seperti yang ditunjukkan di bawah ini:

masukkan deskripsi gambar di sini

  1. Pilih Results> Griddi panel navigasi kiri. Centang Include column headers when copying or saving the resultskotak di panel kanan seperti yang ditunjukkan di bawah ini:

masukkan deskripsi gambar di sini

Itu dia. Sesi Anda saat ini akan menghormati pengaturan Anda dengan efek langsung tanpa memulai kembali SSMS. Selain itu, pengaturan ini tidak akan disebarkan ke sesi berikutnya. Mengubah pengaturan ini secara efektif pada basis per sesi jauh lebih tidak berisik.

RBT
sumber
2

Tiba di sini ketika mencari cara untuk membuat SSMS benar lolos dari pemisah CSV saat mengekspor hasil.

Tebak apa? - ini sebenarnya pilihan, dan tidak dicentang secara default . Jadi secara default, Anda mendapatkan file CSV yang rusak (dan mungkin bahkan tidak menyadarinya, terutama jika ekspor Anda besar dan data Anda tidak memiliki koma secara normal) - dan Anda harus masuk dan mengklik kotak centang sehingga ekspor CSV Anda benar!

Bagi saya, ini tampak seperti pilihan desain yang sangat bodoh dan metafora yang tepat untuk pendekatan Microsoft pada perangkat lunak secara umum ("rusak secara default, membutuhkan tindakan ritual yang tidak berarti untuk membuat fungsi sepele berfungsi").

Tapi saya dengan senang hati akan menyumbangkan $ 100 untuk amal pilihan responden jika seseorang dapat memberi saya satu alasan kehidupan nyata yang valid untuk opsi ini ada (yaitu, skenario aktual di mana itu berguna).

Daibhi O Domhnaill
sumber
2

Di SQL Server 2014 Management Studio pengaturannya adalah di:

Alat> Opsi> Hasil Kueri> SQL Server> Hasil ke Teks> Sertakan tajuk kolom dalam set hasil.

Jason Lewis
sumber
0

Saya juga menghadapi masalah yang sama. Ketika saya menggunakan klik kanan di jendela kueri dan pilih Opsi Kueri. Tetapi baris tajuk tidak muncul dalam file CSV keluaran.

Lalu saya logout server, login lagi dan jalankan script. Lalu berhasil.

hardik rawal
sumber
Apakah Anda mencoba mengubah Include column headers when copying or saving the resultsopsi? Pilihan ini terlihat ketika Anda memilih Results> Griddi panel navigasi kiri di Query Optionsjendela.
RBT