2010-11-16 54 views
2

我需要将变量@XMLOutput设置为XMLformat中子查询的值。SQL Server 2000:编写XML输出时遇到问题

子查询工作对自己很好,但运行整个查询时,我得到的错误:

Incorrect syntax near XML.

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

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

这怎么解决?

+0

还当我添加@XMLOutput作为一个变量,并将其数据类型为xml它说,它是不是有效的数据类型 – will 2010-11-16 17:14:54

+1

什么是数据的样子,和你需要什么结果? – 2010-11-16 17:17:27

+0

这只是一个整数,我想输出说 – will 2010-11-16 17:19:23

回答

0

这不支持在sql 2000中。并且不要打扰试图返回它内部的相关子查询 - 也不会在sql 2000中工作。有趣的呃?

在你的情况下,由于你的xml非常简单,我只需将xml构建为一个字符串并将其返回即可。

DECLARE @XmlString varchar(500) 
SELECT @XmlString = '<loc>' + Cast(loc as varchar(8)) + '</loc>' FROM ghhsitemap 
+0

谢谢你,这是一个很好的黑客,非常感谢 – will 2010-11-16 18:08:30

2

XML数据类型的支持并没有包含在SQL Server直到SQL Server 2005的

+0

好吧,它使我在绑定 – will 2010-11-16 17:20:56

0

刚刚宣布@XMLOutput为VARCHAR()

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

SELECT @XMLOutput = loc FROM ghhsitemap url FOR XML AUTO, Elements 
+0

权利,但我出现此错误:在ASSIGNMENT语句中不允许使用FOR XML子句。 – will 2010-11-16 17:22:26