2

我需要为@XMLOutputXML 格式的子查询的值设置一个变量。

子查询本身可以正常工作,但是当整个查询运行时,我得到了错误:

XML 附近的语法不正确。

SELECT @XMLOutput = (SELECT loc
                       FROM ghhsitemap url
                    FOR XML AUTO, Elements)

第二个问题:当指定@XMLOutput为变量并将其数据类型设置为它时,xml它说它不是有效的数据类型。

如何解决?

4

3 回答 3

2

SQL Server 直到 SQL Server 2005 才包含 XML 数据类型支持。

于 2010-11-16T17:19:02.170 回答
0

只需将 @XMLOutput 声明为 varchar()

您设置值的语法是错误的 - 它应该是这样的:

SELECT @XMLOutput = loc FROM ghhsitemap url FOR XML AUTO, Elements
于 2010-11-16T17:21:26.240 回答
0

这在 sql 2000 中不受支持。也不必费心尝试在相关子查询中返回它——这在 sql 2000 中也不起作用。有趣吧?

在您的情况下,由于您的 xml 非常简单,我只需将 xml 构建为字符串并返回它。

DECLARE @XmlString varchar(500)
SELECT @XmlString = '<loc>' + Cast(loc as varchar(8)) + '</loc>' FROM ghhsitemap
于 2010-11-16T17:28:01.767 回答