SSMS chỉ cho phép dữ liệu không giới hạn đối với dữ liệu XML. Đây không phải là mặc định và cần được đặt trong các tùy chọn.
Một thủ thuật có thể hoạt động trong những trường hợp khá hạn chế là chỉ cần đặt tên cột theo một cách đặc biệt như bên dưới để nó được coi là dữ liệu XML.
DECLARE @S varchar(max) = 'A'
SET @S = REPLICATE(@S,100000) + 'B'
SELECT @S as [XML_F52E2B61-18A1-11d1-B105-00805F49916B]
Trong SSMS (ít nhất là phiên bản 2012 đến hiện tại là 18.3), điều này hiển thị kết quả như bên dưới
Nhấp vào nó sẽ mở ra toàn bộ kết quả trong trình xem XML. Cuộn sang phải cho thấy ký tự cuối cùng của B được giữ nguyên,
Tuy nhiên, điều này có một số vấn đề đáng kể. Việc thêm các cột bổ sung vào truy vấn sẽ phá vỡ hiệu ứng và các hàng bổ sung đều được nối với hàng đầu tiên. Cuối cùng nếu chuỗi chứa các ký tự như <
mở trình xem XML không thành công với lỗi phân tích cú pháp.
Một cách mạnh mẽ hơn để thực hiện việc này để tránh các vấn đề về chuyển đổi máy chủ SQL <
tới <
vv hoặc không thành công do các ký tự này ở bên dưới (ghi có Adam Machanic tại đây).
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('')