preservar \ n de SQL Server Management Studio

11

Tengo una columna llamada EventLog varchar(max)y puede ser bastante grande porque esencialmente almacena el registro de eventos de todo un proceso por lotes.

El problema es que cuando entro en la ventana de consulta y hago una selección como esta

SELECT EventLog from BatchProcess

Cuando corto y pego el texto del registro de eventos en el Bloc de notas,

  1. elimina todas las NewLines \ny es solo una línea continua.
  2. solo copia una cierta cantidad de texto en el portapapeles y trunca el resto.

¿Cómo puedo obtener el contenido de EventLog de SQL Server Management Studio?

RoboShop
fuente

Respuestas:

8

Para lidiar con el truncamiento, intente convertirlo a XML para procesar

DECLARE @S varchar(max)

SELECT @S = ''

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

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

Código de modifed de Martin Smith respuesta a /programming/2759721/how-do-i-view-the-full-content-of-a-text-or-varcharmax-column-in-sql-server -200

Esto también puede resolver los saltos de línea, pero si es un gran problema, intente con un editor diferente

Conrad Frix
fuente
gracias, esto es perfecto para mi necesidad. Eché un vistazo al archivo de registro, era de aproximadamente 3 MB, así que tengo la sensación de que SQL Server corta cualquier cosa después de un meg.
RoboShop
1
  1. elimina todas las NewLines y es solo una línea continua.

Eso suena como la típica basura del Bloc de notas. IIRC, para mostrar saltos de línea, el Bloc de notas necesita \r\nterminaciones de línea, no solo \n. Intente pegar en WordPad o en un editor real .

Matt Ball
fuente
1
podría haber sido, pero también lo probé en Word y WordPad, y todavía era una línea continua. Sin embargo, la otra solución funcionó, tanto para obtener los datos como para que aparezcan las nuevas líneas.
RoboShop
Copiar y pegar tampoco me funciona. Pego en una nueva ventana de consulta SSMS, Emacs o WordPad, y cada CRLF se reemplaza con dos espacios. Si uso el hack XML, puedo ver las nuevas líneas pero mi texto está contaminado por entidades. Sin embargo, al menos puedo entender la esencia. Estoy usando SSMS 2016 (13.0.15900.1) y la vista de tabla para mis listados de resultados.
binki