it-swarm.asia

Simpan Hasil sebagai CSV * dengan * header di SSMS

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 ambil header dan tempel di CSV dll, tetapi apakah ada cara yang lebih baik untuk melakukan ini?

13
Kyle Brandt

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.

22
Marian

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.

Jika Anda menyukai pendekatan skrip PowerShell, saya memiliki skrip yang Ekspor ke CSV dari SSMS via 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 ...

3
billinkc

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