SSMS zezwala tylko na nieograniczoną ilość danych dla danych XML. Nie jest to ustawienie domyślne i należy je ustawić w opcjach.
Jedna sztuczka, która może zadziałać w dość ograniczonych okolicznościach, to po prostu nazwanie kolumny w specjalny sposób, jak poniżej, aby była traktowana jako dane XML.
DECLARE @S varchar(max) = 'A'
SET @S = REPLICATE(@S,100000) + 'B'
SELECT @S as [XML_F52E2B61-18A1-11d1-B105-00805F49916B]
W SSMS (przynajmniej wersje 2012 do obecnej wersji 18.3) wyświetla wyniki jak poniżej
Kliknięcie go otwiera pełne wyniki w przeglądarce XML. Przewijanie w prawo pokazuje, że ostatni znak B jest zachowany,
Jednak to ma kilka istotnych problemów. Dodanie dodatkowych kolumn do zapytania przerywa efekt i wszystkie dodatkowe wiersze zostają połączone z pierwszym. Wreszcie, jeśli ciąg zawiera znaki, takie jak <
otwarcie przeglądarki XML kończy się niepowodzeniem z błędem parsowania.
Bardziej niezawodny sposób na zrobienie tego, który pozwala uniknąć problemów z konwersją SQL Server <
do <
itp. lub niepowodzenie z powodu tych postaci znajduje się poniżej (tutaj Adam Machonic).
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('')