XML XQUERY NTEXT数据类型的问题

时间:2010-04-23 14:58:24

标签: sql xquery

我想在数据类型为NTEXT的列上使用XQuery(我别无选择!)。我尝试使用CONVERT将列转换为XML,但它会出错:

Incorrect syntax near the keyword 'CONVERT'.

这是查询

SELECT 
    y.item.value('@UserID', 'varchar(50)') AS UnitID,   
    y.item.value('@ListingID', 'varchar(100)') AS @ListingID  
FROM   
    dbo.KB_XMod_Modules
    CROSS APPLY     
    CONVERT(xml, instancedata).nodes('//instance') AS y(item)

(instancedata是我的专栏)

有人能想到解决这个问题吗?

由于

1 个答案:

答案 0 :(得分:0)

似乎CONVERTCAST(... AS XML)都不起作用。

XQuery的东西真的只适用于XML列 - 抱歉。

然而:也许有一条逃生路线: - )

你可以做以下两件事之一:

  • XML类型的持久计算列添加到您的表中,并在该新列上添加一方

或 - 如果您无法更改表格结构 -

  • 在该表上创建一个视图,并包含一个XML-casted列

因此对于解决方案#1,你会这样做:

ALTER TABLE KB_XMod_Modules 
   ADD XmlCol AS CAST(instancedata AS XML) PERSISTED

对于解决方案#2,您将使用:

CREATE VIEW KBwithXML AS
  SELECT instancedata, CAST(instancedata AS XML) 'XmlCol'
  FROM KB_XMod_Modules

在这两种情况下,您现在都可以使用XmlCol类型XML,您可以使用XQuery查询,让您心满意足!