Ошибка SQL PATH XML Server ('') - PullRequest
3 голосов
/ 22 ноября 2011
SELECT
**FIELDS**
AS [text()] --Stops the XMLPATH line rendering output as XML
FROM #temp
WHERE  **CONDITIONS**
FOR XML PATH('') 

Это не работает в SQL Server 2000 (не поддерживается). Я попытался использовать FOR XML RAW, но он возвращает множество бесполезной информации. то есть:

 <row text x0028 x0029="blah, blah"> <row text x0028 x0029="blah"> 

Приведенный выше код в настоящее время возвращает объединенную строку (состоящую из нескольких столбцов различных типов) из каждой строки в таблице.

Как мне добиться этого в SQL Server 2000?

Ответы [ 3 ]

6 голосов
/ 22 ноября 2011

Конкатенация в SQL Server 2000:

declare @s varchar(8000);
set @s = '';

select @s = @s + field1 + field2 + field3
from #temp
where ...
order by ...;

select @s;
3 голосов
/ 22 ноября 2011

Тип данных XML не поддерживается в 2000 году, он был представлен в 2005 году.

SQL 2000 действительно представил FOR XML , но он поддерживал только RAW, AUTO и EXPLICIT

0 голосов
/ 05 марта 2014

Вы должны определить некоторый текст или символ внутри FOR XML PATH ('') например, FOR XML PATH('abc'). Вы также можете использовать FOR XML RAW('abc') для вывода необработанного XML.

...