我想在数据类型为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是我的专栏)
有人能想到解决这个问题吗?
由于
答案 0 :(得分:0)
似乎CONVERT
和CAST(... AS XML)
都不起作用。
XQuery的东西真的只适用于XML列 - 抱歉。
然而:也许有一条逃生路线: - )
你可以做以下两件事之一:
XML
类型的持久计算列添加到您的表中,并在该新列上添加一方或 - 如果您无法更改表格结构 -
因此对于解决方案#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查询,让您心满意足!