sql >> Databasteknik >  >> RDS >> Sqlserver

Hur visar jag det fullständiga innehållet i en text- eller varchar(MAX)-kolumn i SQL Server 2008 Management Studio?

SSMS tillåter endast obegränsad data för XML-data. Detta är inte standard och måste ställas in i alternativen.

Ett knep som kan fungera under ganska begränsade omständigheter är att helt enkelt namnge kolumnen på ett speciellt sätt enligt nedan så att den behandlas som XML-data.

DECLARE @S varchar(max) = 'A'

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

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

I SSMS (minst versioner 2012 till nuvarande av 18.3) visar detta resultaten enligt nedan

Om du klickar på den öppnas de fullständiga resultaten i XML-visningsprogrammet. Scrollning åt höger visar att det sista tecknet i B bevaras,

Detta har dock några betydande problem. Att lägga till extra kolumner i frågan bryter effekten och alla extra rader sammanlänkas med den första. Slutligen om strängen innehåller tecken som < att öppna XML-visningsprogrammet misslyckas med ett analysfel.

Ett mer robust sätt att göra detta som undviker problem med SQL Server-konvertering av < till < etc eller misslyckas på grund av dessa karaktärer är nedan (kreditera Adam Machanic här).

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. Återställer SQL Server Master Database

  2. Hur beräknar man medelvärdet av en kolumn och sedan inkluderar det i en utvald fråga i Oracle?

  3. Hur Floor() fungerar i PostgreSQL

  4. Vilken SQL-fråga är bättre, MATCH MOT eller GILLA?