préservation \ n à partir de SQL Server Management Studio

11

J'ai une colonne appelée EventLog varchar(max)et peut être assez grande, car elle stocke essentiellement le journal des événements d'un processus batch complet.

Le problème est que lorsque je vais dans la fenêtre de requête et que je fais une sélection comme celle-ci

SELECT EventLog from BatchProcess

Lorsque je coupe et colle le texte du journal des événements dans le Bloc-notes, il

  1. supprime tous les NewLines \net n'est qu'une ligne continue.
  2. copie uniquement une certaine quantité de texte dans le presse-papiers et tronque le reste.

Comment puis-je obtenir le contenu d'EventLog à partir de SQL Server Management Studio?

RoboShop
la source

Réponses:

8

Pour gérer la troncature, essayez de la convertir en XML pour le traitement

DECLARE @S varchar(max)

SELECT @S = ''

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

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

Code modifié à partir de la réponse de Martin's Smith à /programming/2759721/how-do-i-view-the-full-content-of-a-text-or-varcharmax-column-in-sql-server -200

Cela peut également résoudre les sauts de ligne, mais si c'est un gros problème, essayez un autre éditeur

Conrad Frix
la source
merci, c'est parfait pour mon besoin. J'ai jeté un œil au fichier journal, il s'agissait d'environ 3 Mo. J'ai donc l'impression que SQL Server coupe tout après une mégaoctet.
RoboShop
1
  1. supprime tous les NewLines et n'est qu'une ligne continue.

Cela ressemble à la merde typique du Bloc-notes. IIRC, pour afficher réellement les sauts de ligne, le Bloc-notes a besoin \r\nde fins de ligne, pas seulement \n. Essayez de coller dans WordPad ou dans un véritable éditeur .

Matt Ball
la source
1
ça aurait pu être mais je l'ai essayé aussi dans Word et WordPad, et c'était toujours des lignes continues. L'autre solution a fonctionné cependant, à la fois pour extraire les données et faire apparaître les NewLines.
RoboShop
Copier et coller ne fonctionne pas non plus pour moi. Je colle dans une nouvelle fenêtre de requête SSMS, Emacs ou WordPad, et chaque CRLF est remplacé par deux espaces. Si j'utilise le hack XML, je peux voir les nouvelles lignes mais mon texte est pollué par les entités. Au moins, je peux comprendre l'essentiel, cependant. J'utilise SSMS 2016 (13.0.15900.1) et la vue tabulaire pour mes listes de résultats.
binki