Simpan Hasil sebagai CSV * dengan * header di SSMS


13

Dengan SQL Server 2008 R2, ketika saya menyimpan hasilnya sebagai CSV tidak ada header. Saya dapat mengatasi ini dengan menyalin dan menempel dengan "Salin dengan Header", atau hanya mengambil header dan menempelkannya di CSV dll, tetapi apakah ada cara yang lebih baik untuk melakukan ini?


Sebenarnya, sp yang melakukan ini mungkin ideal.
Kyle Brandt

Salin dengan Header lalu rekatkan ke Excel!

Jawaban:


22

Di SSMS Anda perlu mengubah beberapa opsi:

Alat - Opsi - Hasil kueri - sql server - hasil ke kisi (atau teks) -> Sertakan tajuk kolom saat menyalin atau menyimpan hasil .

Pengaturan yang diubah diterapkan ke jendela permintaan baru, tetapi tidak ada.


10

Saya melihat bahwa Anda dengan jelas menyatakan Anda sedang mencari solusi di SSMS tapi saya pikir saya akan memberikan solusi PowerShell jika itu membantu (SQLPS dapat diakses dari dalam SSMS 2008 & 2008 R2).

Anda dapat menggunakan SQLPS (atau PowerShell biasa dengan SQL cmdlet snapin) untuk menjalankan sesuatu seperti ini:

Invoke-Sqlcmd -Query "sp_databases" -ServerInstance "LocalHost\R2" |
Export-Csv -Path "C:\temp\MyDatabaseSizes.csv" -NoTypeInformation

Saya dapat terus menggunakan contoh ini jika Anda tertarik.


3

Jika Anda menyukai pendekatan skrip PowerShell, saya memiliki skrip yang mengekspor ke CSV dari SSMS melalui PowerShell . Saya suka sejauh ini Anda dapat memiliki SQL Script dinamis, heck Anda dapat memilih teks apa pun dan SSMS meneruskannya ke skrip sebagai argumen.

Satunya downside adalah saya belum menemukan cara cerdas untuk meneruskan koneksi jendela saat ini. Solusi saya saat ini adalah menyiapkan alat yang berbeda yang hanya bervariasi dalam string koneksi mereka yaitu PROD_DW, PROD_DB, TEST_DW ...


1

Anda dapat melakukan gabungan semua bergabung untuk secara eksplisit menambahkan header kolom sebagai satu baris pilih yang disatukan terhadap baris nyata, misalnya:

SELECT 'col1' AS col1... 
UNION ALL 
SELECT T.col1... 
FROM TABLE T

Rasa sakit terbesar dengan pendekatan ini adalah pemeran paksa ke tipe data karakter pada pemilihan kedua.


-1

SSMS bukan alat pengekspor data. Gunakan wizard Impor / Ekspor atau BCP yang keduanya dirancang sebagai alat ekspor data dan akan melakukan apa yang ingin Anda lakukan.


Jika itu benar, ia tidak boleh memiliki opsi ekspor sama sekali. Untuk perangkat lunak apa pun, jika Anda menambahkan fitur, buat itu berfungsi dengan baik. Setidaknya SSMS 2008R2 gagal tes itu ketika datang untuk mengekspor. Selain itu, SSMS sebenarnya dapat memenuhi kebutuhan OP.
Eric J.

2
SSMS adalah alat ekspor data ad-hoc. Jika Anda memerlukan satu kali ekstrak data ke, katakanlah, Excel maka SSMS adalah alat tercepat dan termudah. Dalam waktu yang diperlukan untuk Panduan Ekspor untuk memulai, Anda dapat menjalankan kueri dan menyimpan hasilnya.
Greenstone Walker
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.