Beibehalten von \ n aus SQL Server Management Studio

11

Ich habe eine Spalte mit dem Namen EventLog varchar(max)und kann ziemlich groß sein, da sie im Wesentlichen das Ereignisprotokoll eines gesamten Stapelprozesses speichert.

Das Problem ist, dass wenn ich in das Abfragefenster gehe und eine Auswahl wie diese mache

SELECT EventLog from BatchProcess

Wenn ich den Text des Ereignisprotokolls ausschneide und in Notepad einfüge, wird es

  1. Entfernt alle NewLines \nund ist nur eine durchgehende Linie.
  2. kopiert nur eine bestimmte Textmenge in die Zwischenablage und schneidet den Rest ab.

Wie kann ich den Inhalt von EventLog aus dem SQL Server Management Studio abrufen?

RoboShop
quelle

Antworten:

8

Um mit dem Abschneiden umzugehen, versuchen Sie, es zur Verarbeitung in XML zu konvertieren

DECLARE @S varchar(max)

SELECT @S = ''

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

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

Code geändert von Martins Smiths Antwort auf /programming/2759721/how-do-i-view-the-full-content-of-a-text-or-varcharmax-column-in-sql-server -200

Dies kann auch die Zeilenumbrüche lösen, aber wenn es eine große Sache ist, versuchen Sie es mit einem anderen Editor

Conrad Frix
quelle
Danke, das ist perfekt für meine Bedürfnisse. Ich habe mir die Protokolldatei angesehen, sie war ungefähr 3 MB groß, daher habe ich das Gefühl, dass SQL Server nach einer Megabyte alles abschneidet.
RoboShop
1
  1. Entfernt alle NewLines und ist nur eine durchgehende Linie.

Das klingt nach dem typischen Mist von Notepad. IIRC, um Zeilenumbrüche tatsächlich anzuzeigen, benötigt Notepad \r\nnicht nur Zeilenenden \n. Versuchen Sie, in WordPad oder einen echten Editor einzufügen .

Matt Ball
quelle
1
Es hätte sein können, aber ich habe es auch in Word und WordPad versucht, und es waren immer noch durchgehende Linien. Die andere Lösung funktionierte jedoch sowohl zum Abrufen der Daten als auch zum Anzeigen der NewLines.
RoboShop
Kopieren und Einfügen funktioniert auch bei mir nicht. Ich füge in ein neues SSMS-Abfragefenster Emacs oder WordPad ein, und jede CRLF wird durch zwei Leerzeichen ersetzt. Wenn ich den XML-Hack verwende, kann ich die Zeilenumbrüche sehen, aber mein Text wird von Entitäten verschmutzt. Zumindest kann ich das Wesentliche verstehen. Ich verwende SSMS 2016 (13.0.15900.1) und Tabellenansicht für meine Ergebnislisten.
Binki