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?

Kyle Brandt
sumber
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.

Marian
sumber
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.

Aaron Nelson - SQLvariant
sumber
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 ...

billinkc
sumber
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.

Phillip Senn
sumber
-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.

mrdenny
sumber
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