zachowanie \ n z SQL Server Management Studio

11

Mam kolumnę o nazwie EventLog varchar(max)i może być dość duża, ponieważ zasadniczo przechowuje dziennik zdarzeń całego procesu wsadowego.

Problem polega na tym, że kiedy wchodzę do okna zapytania i dokonuję takiego wyboru

SELECT EventLog from BatchProcess

Kiedy wycinam i wklejam tekst dziennika zdarzeń do Notatnika, to

  1. usuwa wszystkie nowe linie \ni jest tylko jedną linią ciągłą.
  2. kopiuje tylko pewną ilość tekstu do schowka i obcina resztę.

Jak mogę uzyskać zawartość EventLog z SQL Server Management Studio?

RoboShop
źródło

Odpowiedzi:

8

Aby poradzić sobie ze skróceniem, spróbuj przekonwertować go na XML w celu przetworzenia

DECLARE @S varchar(max)

SELECT @S = ''

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

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

Kod zmodyfikowaliśmy od Martina Smitha odpowiedź do /programming/2759721/how-do-i-view-the-full-content-of-a-text-or-varcharmax-column-in-sql-server -200

Może to również rozwiązać łamanie linii, ale jeśli to wielka sprawa, spróbuj innego edytora

Conrad Frix
źródło
dziękuję, to jest idealne dla moich potrzeb. Rzuciłem okiem na plik dziennika, miał około 3 MB, więc mam wrażenie, że SQL Server odcina wszystko po jednym megapiksie.
RoboShop,
1
  1. usuwa wszystkie nowe linie i jest tylko jedną linią ciągłą.

To brzmi jak typowa cholerność Notatnika. IIRC, aby faktycznie wyświetlać podziały linii, Notatnik potrzebuje \r\nkońców linii, nie tylko \n. Spróbuj wkleić do WordPada lub prawdziwego edytora .

Matt Ball
źródło
1
mogło tak być, ale wypróbowałem to również w programach Word i WordPad i wciąż były to ciągłe linie. Inne rozwiązanie zadziałało, zarówno w przypadku pobierania danych, jak i wyświetlania linii NewLines.
RoboShop,
Kopiowanie i wklejanie również nie działa dla mnie. Wklejam do nowego okna zapytania SSMS, Emacsa lub WordPada, a każdy CRLF jest zastępowany dwoma spacjami. Jeśli użyję hackowania XML, widzę nowe wiersze, ale mój tekst jest zanieczyszczony przez byty. Przynajmniej mogę zrozumieć sedno. Używam SSMS 2016 (13.0.15900.1) i widoku tabeli do moich list wyników.
binki