รักษา \ n จาก SQL Server Management Studio


11

ฉันมีคอลัมน์ที่เรียกว่าEventLog varchar(max)และสามารถมีขนาดใหญ่เพราะมันเก็บบันทึกเหตุการณ์ของกระบวนการแบทช์ทั้งหมด

ปัญหาคือเมื่อฉันเข้าไปในหน้าต่างแบบสอบถามและเลือกแบบนี้

SELECT EventLog from BatchProcess

เมื่อฉันตัดและวางข้อความของบันทึกเหตุการณ์ลงในแผ่นจดบันทึกมัน

  1. ลบ NewLines ทั้งหมด\nและเป็นเพียงหนึ่งบรรทัดต่อเนื่อง
  2. คัดลอกข้อความจำนวนหนึ่งไปยังคลิปบอร์ดและตัดส่วนที่เหลือออก

ฉันจะรับเนื้อหาของ EventLog จาก SQL Server Management Studio ได้อย่างไร

คำตอบ:


8

หากต้องการจัดการกับการตัดให้ลองแปลงเป็น XML เพื่อประมวลผล

DECLARE @S varchar(max)

SELECT @S = ''

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

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

รหัสดัดแปลงจากคำตอบของสมิ ธ มาร์ติน เพื่อ/programming/2759721/how-do-i-view-the-full-content-of-a-text-or-varcharmax-column-in-sql-server -200

นี่อาจแก้ปัญหาการแบ่งบรรทัด แต่ถ้าเป็นเรื่องใหญ่ลองใช้ตัวแก้ไขอื่น


ขอบคุณนี้เหมาะสำหรับความต้องการของฉัน ฉันได้ดูไฟล์บันทึกข้อมูลมันมีขนาดประมาณ 3MB ดังนั้นฉันจึงรู้สึกว่า SQL Server จะตัดสิ่งใดหลังจากนั้นหนึ่งเมกะไบต์
RoboShop

1
  1. ลบ NewLines ทั้งหมดและเป็นเพียงหนึ่งบรรทัดต่อเนื่อง

ฟังดูเหมือนความนิยมทั่วไปของ Notepad IIRC, เพื่อที่จะแสดงจริงแบ่งบรรทัด Notepad ต้องการปลายสายไม่เพียง\r\n \nลองวางลงใน WordPad หรือแก้ไขจริง


1
มันน่าจะเป็นไปได้ แต่ฉันก็ลองใช้มันใน Word และ WordPad ด้วยและมันก็ยังคงต่อเนื่องกัน วิธีการแก้ปัญหาอื่น ๆ ที่ใช้งานได้ทั้งการดึงข้อมูลออกมาและทำให้ NewLines ปรากฏขึ้น
RoboShop

การคัดลอกและการวางไม่ได้ผลสำหรับฉันเช่นกัน ฉันวางลงในหน้าต่างแบบสอบถาม SSMS ใหม่ Emacs หรือ WordPad และ CRLF แต่ละรายการจะถูกแทนที่ด้วยช่องว่างสองช่อง ถ้าฉันใช้ XML แฮ็คฉันสามารถเห็นบรรทัดใหม่ แต่ข้อความของฉันปนเปื้อนด้วยเอนทิตี อย่างน้อยฉันก็ได้รับส่วนสำคัญ ฉันใช้ SSMS 2016 (13.0.15900.1) และมุมมองตารางสำหรับรายการผลลัพธ์ของฉัน
binki
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.