Bagaimana saya bisa mengekspor hasil permintaan ke file .csv di SQL Server 2008?
sql-server-2008
Emas
sumber
sumber
Jawaban:
Berikut versi layar penuh dari gambar itu, di bawah ini
Ini akan menampilkan hasil kueri Anda sebagai teks yang dibatasi koma.
Untuk menyimpan hasil kueri ke file: Ctrl + Shift + F
sumber
Ctrl+Shift+F
, itu hanya mengubah mode keluaran, itu tidak mempengaruhi hasil jika Anda sudah menjalankan kueri. Agar ini tercermin, Anda harus menjalankan kembali kueri. Ketika Anda menjalankannya dalam mode "Hasil ke File", itu akan meminta Anda untuk tempat Anda ingin menyimpan hasil.Saya tahu ini agak lama, tapi ini cara yang lebih mudah ...
Jalankan kueri Anda dengan pengaturan default (menempatkan hasil dalam format grid, jika Anda tidak dalam format grid, lihat di bawah)
Klik kanan pada hasil kisi dan klik "Simpan Hasil Sebagai" dan simpan.
Jika hasil Anda tidak dalam format kisi, klik kanan tempat Anda menulis kueri, arahkan "Hasil Ke" dan klik "Hasil Ke Kotak"
Ketahuilah bahwa Anda TIDAK menangkap tajuk kolom!
Semoga berhasil!
sumber
Anda dapat menggunakan PowerShell
sumber
Add-PSSnapin SqlServerCmdletSnapin100
danAdd-PSSnapin SqlServerProviderSnapin100
.Invoke-Sqlcmd -ServerInstance MySQLserver123 -Query $QueryFmt -querytimeout 600 | Export-CSV $AttachmentPath
Install-Module -Name SqlServer
(tetapi tidak perlu membobol Cmdlets tersebut). Juga, saya telah menyelamatkan perintah dalam script, yang tidak akan berjalan sampai aku mengubah kebijakan eksekusi:Set-ExecutionPolicy -ExecutionPolicy Unrestricted -Scope CurrentUser
.RemoteSigned
kebijakan eksekusi akan cukup.Jika basis data yang dimaksud adalah lokal, berikut ini mungkin merupakan cara paling kuat untuk mengekspor hasil kueri ke file CSV (artinya, memberi Anda kontrol terbanyak).
Skrip PowerShell
Jalankan PowerShell sebagai Admin
sumber
Invoke-Sqlcmd -ServerInstance MySQLserver123 -Query $QueryFmt -querytimeout 600 | Export-CSV $AttachmentPath
MS Excel -> Data -> Permintaan Baru -> Dari Database .. ikuti langkah-langkahnya
sumber
Berdasarkan jawaban NS, saya memiliki skrip PowerShell yang mengekspor ke file CSV dengan tanda kutip di sekitar bidang dan dipisahkan koma dan melompati informasi header di file.
Dua baris pertama memungkinkan kemampuan untuk menggunakan perintah-let Invoke-SqlCmd .
sumber
Gunakan T-SQL :
Tapi, ada beberapa peringatan:
Anda harus memiliki penyedia Microsoft.ACE.OLEDB.12.0 tersedia. Penyedia Jet 4.0 akan bekerja juga, tapi ini kuno, jadi saya menggunakan yang ini sebagai gantinya.
File .CSV harus sudah ada. Jika Anda menggunakan header (
HDR=YES
), pastikan baris pertama file .CSV adalah daftar semua bidang yang dibatasi.sumber
Menggunakan teknik SQL Server Management Studio asli untuk mengekspor ke CSV (seperti yang disarankan @ 8kb) tidak berfungsi jika nilai Anda mengandung koma, karena SSMS tidak membungkus nilai dalam tanda kutip ganda. Cara yang lebih kuat yang bekerja untuk saya adalah dengan menyalin hasil (klik di dalam kotak dan kemudian CTRL-A, CTRL-C) dan tempel ke Excel. Kemudian simpan sebagai file CSV dari Excel.
sumber
Anda dapat menggunakan QueryToDoc ( http://www.querytodoc.com ). Ini memungkinkan Anda menulis kueri terhadap basis data SQL dan mengekspor hasilnya - setelah Anda memilih pembatas - ke Excel, Word, HTML, atau CSV
sumber
sebagai @Slogmeister Extraordinaire Dikutip sudah benar.
Seseorang perlu memiliki 1> File sudah hadir dengan kolom 2> Satu perlu memiliki Office diinstal
Kesalahan yang dihadapi
1
Msg 7303, Level 16, Negara 1, Baris 1 Tidak dapat menginisialisasi objek sumber data dari penyedia OLE DB "Microsoft.ACE.OLEDB.12.0" untuk server tertaut "(null)". "
64 bit http://download.microsoft.com/download/2/4/3/24375141-E08D-4803-AB0E-10F2E3A07AAA/AccessDatabaseEngine_x64.exe
32 bit http://download.microsoft.com/download/f/d/8/fd8c20d8-e38a-48b6-8691-542403b91da1/AccessDatabaseEngine.exe
2
Msg 15281, Level 16, State 1, Line 1 SQL Server memblokir akses ke PERNYATAAN 'OpenRowset / OpenDatasource' dari komponen 'Ad Hoc Distributed Queries' karena komponen ini dimatikan sebagai bagian dari konfigurasi keamanan untuk server ini. Administrator sistem dapat mengaktifkan penggunaan 'Kueri Terdistribusi Ad Hoc' dengan menggunakan sp_configure. Untuk informasi lebih lanjut tentang mengaktifkan 'Kueri Terdistribusi Ad Hoc', cari 'Kueri Terdistribusi Ad Hoc' di SQL Server Books Online.
sumber
Jika Anda tidak ingin menggunakan Powershell, jawaban ini adalah variasi dari jawaban hebat 8kb. Satu-satunya perbedaan adalah bahwa alih-alih memilih CSV sebagai format output, pilih Tab Delimited. Dengan cara ini jika ada koma di data Anda, itu tidak akan melewati sel di Excel. Juga, jika Anda memiliki pembatas default Excel yang diatur ke tab, Anda cukup melakukan salin-semua hasil permintaan SSMS (CTRL-A, CTRL-C) dan tempel ke Excel (tidak perlu menyimpan sebagai file dan mengimpor ke Excel ):
Sekarang Anda dapat mengeksekusi kueri Anda, kemudian melakukan CTRL-A untuk memilih semua hasil, kemudian CTRL-C untuk menyalin ke clipboard, kemudian beralih ke Excel 2013 (dapat bekerja pada 2007 juga, tidak yakin) dan menempel - mengasumsikan default Excel pembatas diatur ke tab.
Gambar Layar Opsi Kueri SSMS
sumber
Ya, semua ini dimungkinkan ketika Anda memiliki akses langsung ke server. Tetapi bagaimana jika Anda hanya memiliki akses ke server dari server web / aplikasi? Nah, situasinya adalah ini dengan kami kembali dan solusinya adalah SQL Server Ekspor ke CSV .
sumber