sql >> Database >  >> RDS >> Sqlserver

Hoe bekijk ik de volledige inhoud van een tekst- of varchar(MAX)-kolom in SQL Server 2008 Management Studio?

SSMS staat alleen onbeperkte gegevens toe voor XML-gegevens. Dit is niet de standaard en moet worden ingesteld in de opties.

Een truc die in vrij beperkte omstandigheden zou kunnen werken, is simpelweg de kolom op een speciale manier een naam te geven, zoals hieronder, zodat deze wordt behandeld als XML-gegevens.

DECLARE @S varchar(max) = 'A'

SET @S =  REPLICATE(@S,100000) + 'B' 

SELECT @S as [XML_F52E2B61-18A1-11d1-B105-00805F49916B]

In SSMS (ten minste versies 2012 tot huidige 18.3) geeft dit de resultaten weer zoals hieronder

Als u erop klikt, worden de volledige resultaten in de XML-viewer geopend. Als u naar rechts scrolt, ziet u dat het laatste teken van B behouden blijft,

Dit heeft echter een aantal belangrijke problemen. Het toevoegen van extra kolommen aan de query verbreekt het effect en extra rijen worden allemaal aaneengeschakeld met de eerste. Ten slotte als de tekenreeks tekens bevat zoals < het openen van de XML-viewer mislukt met een parseerfout.

Een robuustere manier om dit te doen die problemen met SQL Server-conversie van < . voorkomt naar < etc of falen vanwege deze karakters staat hieronder (credit Adam Machanic hier).

DECLARE @S varchar(max)

SELECT @S = ''

SELECT @S = @S + '
' + OBJECT_DEFINITION(OBJECT_ID) FROM SYS.PROCEDURES

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


  1. Correcte manier om Bi-directioneel 1:m in Green-DAO . te hanteren

  2. Door komma's gescheiden waarden splitsen in Oracle

  3. Barman gebruiken om een ​​back-up te maken van PostgreSQL - een overzicht

  4. Hoe ontbrekende datums in MySQL in te vullen?