【问题标题】:SQL Server 2000 XML PATH('') errorSQL Server 2000 XML PATH('') 错误
【发布时间】:2012-01-03 22:57:31
【问题描述】:
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 中实现这一点?

【问题讨论】:

标签: sql sql-server-2005 tsql sql-server-2000 for-xml


【解决方案1】:

XML 数据类型在 2000 年不受支持,它是在 2005 年推出的。

SQL 2000 确实引入了FOR XML,但它只支持RAWAUTOEXPLICIT

【讨论】:

  • 我知道,这就是我尝试(但失败)寻找替代方案的原因:(
【解决方案2】:

SQL Server 2000 中的串联:

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

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

select @s;

【讨论】:

  • 您先生,真是个天才……为什么我从不先尝试简单的选项!尝试从生成的 XML 中提取项目为我省去了很多麻烦!
【解决方案3】:

您必须在 FOR XML PATH(' ') 中定义一些文本或字符,例如, FOR XML PATH('abc')。您还可以使用FOR XML RAW('abc') 输出原始 XML。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-06-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-09-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多