【问题标题】:SQL Server 2000: Trouble with writing xml outputSQL Server 2000:写入 xml 输出时遇到问题
【发布时间】:2010-11-16 17:13:17
【问题描述】:

我需要将变量@XMLOutput设置为XML格式的子查询的值。

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

XML 附近的语法不正确。

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

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

如何解决?

【问题讨论】:

  • 另外,当我将@XMLOutput 添加为变量并将其数据类型设置为 xml 时,它表示它不是有效的数据类型
  • 数据是什么样的,您需要什么结果?
  • 它只是一个整数,我希望输出说 9
  • SQL Server 2000 没有 XML 数据类型...您需要至少升级到 SQL Server 2005
  • 以防万一:这是一篇关于在 SQL Server 2000 中支持 XML 的好文章:msdn.microsoft.com/en-us/magazine/cc163782.aspx

标签: sql sql-server tsql sql-server-2000 sqlxml


【解决方案1】:

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

【讨论】:

    【解决方案2】:

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

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

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

    【讨论】:

      【解决方案3】:

      只需将@XMLOutput 声明为 varchar()

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

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

      【讨论】:

      • 正确,但我收到此错误:ASSIGNMENT 语句中不允许使用 FOR XML 子句。
      猜你喜欢
      • 2017-05-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-12-22
      • 2011-07-19
      • 1970-01-01
      • 2011-04-24
      相关资源
      最近更新 更多