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('')