sql >> Database teknologi >  >> RDS >> Sqlserver

Hvordan får jeg vist det fulde indhold af en tekst- eller varchar(MAX)-kolonne i SQL Server 2008 Management Studio?

SSMS tillader kun ubegrænset data til XML-data. Dette er ikke standard og skal indstilles i indstillingerne.

Et trick, der kan fungere under ganske begrænsede omstændigheder, er simpelthen at navngive kolonnen på en speciel måde som nedenfor, så den bliver behandlet 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 (mindst versioner 2012 til nuværende af 18.3) viser dette resultaterne som nedenfor

Ved at klikke på den åbnes de fulde resultater i XML-fremviseren. Rulning til højre viser, at det sidste tegn i B er bevaret,

Dette har dog nogle væsentlige problemer. Tilføjelse af ekstra kolonner til forespørgslen bryder effekten, og ekstra rækker bliver alle sammenkædet med den første. Endelig hvis strengen indeholder tegn såsom < åbning af XML-fremviseren mislykkes med en parsingsfejl.

En mere robust måde at gøre dette på, der undgår problemer med SQL Server-konvertering af < til < osv. eller fejl på grund af disse karakterer er nedenfor (kreditér Adam Machanic her).

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. SQL Server's Equivalent to Sleep():WAITFOR-erklæringen

  2. At skrive en fil ved hjælp af flere tråde

  3. SQL Server-fejl 113:Manglende slutkommentarmærke '*/'

  4. Sådan opretter og sletter du databaser og tabeller i MySQL