menjaga \ n dari SQL Server Management Studio

11

Saya memiliki kolom yang disebut EventLog varchar(max)dan bisa sangat besar karena pada dasarnya itu menyimpan log peristiwa dari seluruh proses batch.

Masalahnya adalah ketika saya masuk ke jendela permintaan dan melakukan pilih seperti ini

SELECT EventLog from BatchProcess

Ketika saya memotong dan menempelkan teks acara log ke Notepad, itu

  1. menghapus semua NewLines \ndan hanya satu baris kontinu.
  2. hanya menyalin sejumlah teks ke clipboard dan memotong sisanya.

Bagaimana saya bisa mendapatkan konten EventLog dari SQL Server Management Studio?

RoboShop
sumber

Jawaban:

8

Untuk menangani pemotongan coba mengonversinya ke XML untuk diproses

DECLARE @S varchar(max)

SELECT @S = ''

SELECT @S = @S + '
' + EventLog  FROM BatchProcess

SELECT @S AS [processing-instruction(x)] FOR XML PATH('')

Kode dimodifikasi dari jawaban Martin Smith untuk /programming/2759721/how-do-i-view-the-full-content-of-a-text-or-varcharmax-column-in-sql-server -200

Ini juga dapat memecahkan jeda baris, tetapi jika ini penting coba editor lain

Conrad Frix
sumber
terima kasih, ini sempurna untuk kebutuhan saya. Saya telah melihat file log, sekitar 3MB, jadi saya merasa SQL Server memotong apa pun setelah satu mcg.
RoboShop
1
  1. menghapus semua NewLines dan hanya satu baris kontinu.

Itu terdengar seperti crappiness khas Notepad. IIRC, untuk benar-benar menampilkan jeda baris, Notepad membutuhkan \r\nakhir baris, bukan hanya \n. Coba tempelkan ke WordPad atau editor sungguhan .

Matt Ball
sumber
1
bisa saja tetapi saya mencobanya di Word dan WordPad juga, dan itu masih baris terus menerus. Solusi lain bekerja, baik untuk mengeluarkan data dan membuat NewLines muncul.
RoboShop
Menyalin dan menempel juga tidak bekerja untuk saya. Saya tempel ke jendela permintaan SSMS baru, Emacs, atau WordPad, dan setiap CRLF diganti dengan dua spasi. Jika saya menggunakan hack XML, saya bisa melihat baris baru tetapi teks saya dicemari oleh entitas. Setidaknya saya bisa mendapatkan intinya. Saya menggunakan SSMS 2016 (13.0.15900.1) dan tampilan tabel untuk daftar hasil saya.
binki