Saltar al contenido

¿Cómo imprimir VARCHAR (MAX) usando Print Statement?

Solución:

Sé que es una vieja pregunta, pero lo que hice no se menciona aquí.

Para mí funcionó lo siguiente.

DECLARE @info NVARCHAR(MAX)

--SET @info to something big

PRINT CAST(@info AS NTEXT)

La siguiente solución alternativa no utiliza la PRINT declaración. Funciona bien en combinación con SQL Server Management Studio.

SELECT CAST('<root><![CDATA[' + @MyLongString + ']]></root>' AS XML)

Puede hacer clic en el XML devuelto para expandirlo en el visor XML integrado.

Hay un límite bastante generoso del lado del cliente en el tamaño mostrado. Ir a Tools/Options/Query Results/SQL Server/Results to Grid/XML data para ajustarlo si es necesario.

Así es como se debe hacer esto:

DECLARE @String NVARCHAR(MAX);
DECLARE @CurrentEnd BIGINT; /* track the length of the next substring */
DECLARE @offset tinyint; /*tracks the amount of offset needed */
set @string = replace(  replace(@string, char(13) + char(10), char(10))   , char(13), char(10))

WHILE LEN(@String) > 1
BEGIN
    IF CHARINDEX(CHAR(10), @String) between 1 AND 4000
    BEGIN
           SET @CurrentEnd =  CHARINDEX(char(10), @String) -1
           set @offset = 2
    END
    ELSE
    BEGIN
           SET @CurrentEnd = 4000
            set @offset = 1
    END   
    PRINT SUBSTRING(@String, 1, @CurrentEnd) 
    set @string = SUBSTRING(@String, @[email protected], LEN(@String))   
END /*End While loop*/

Tomado de http://ask.sqlservercentral.com/questions/3102/any-way-around-the-print-limit-of-nvarcharmax-in-s.html

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *