Попробуйте это
DECLARE @result VARCHAR(100)=
STUFF(
(
SELECT TOP 5 CHAR(13) + [name]
FROM sys.objects
FOR XML PATH(''),TYPE).value('.','nvarchar(max)'),1,1,'');
PRINT @result;
Вы должны использовать TYPE
, чтобы получить нативно типизированный XML, чтобы использовать метод .value()
.Это неявно приведет к повторному экранированию всех сущностей к их действительным строковым значениям.
Кроме того, я использую PRINT
, так как типичный результат сетки не будет отображать разрывы строк.
Подсказка: если выиспользуйте CHAR(13)+CHAR(10)
, вам нужно добавить ,1,2,'')
в качестве параметров STUFF()
.