SQL Server 2005中如何读取XML数据

3

我有一张表,其中有一个XMLData列是TEXT类型。如何从这一列读取数据?


2
TSQL?C#?缺乏足够的细节... - Mitch Wheat
5
为什么不将其存储为XML数据类型而不是Text?这将是第一步。 - Derek Kromm
你不会真正能够使用文本数据类型做任何有趣的事情。这也是它被弃用的原因之一。 - Code Magician
已经有了这个内容,无法更改它。必须按照现有的方式使用它...有没有什么办法??? - Learning Singh
ALTER TABLE dbo.YourTable ALTER COLUMN YourXmlColumn XML,完成! - marc_s
2个回答

3
只要该列的类型为TEXT,你实际上无法对其进行任何有用的操作。 TEXT已经被弃用并且将在未来的SQL Server版本中被删除-请停止使用它。
如果它只存储XML,请将其更改为XML数据类型。
一旦你完成这个步骤,你可以使用XPath和XQuery从XML中提取单个信息项-例如:
SELECT
    YourXMlColumn.value('(/Root/SomeItems/Item/FirstName)[1]', 'varchar(50)') as 'FirstName',
    YourXMlColumn.value('(/Root/SomeItems/Item/Age)[1]', 'int') as 'Age'
FROM
    dbo.YourTable
WHERE
    (some condition)

或者,如果您在XML中有多个项以列表结构存在,可以基于XPath表达式创建一个“伪表格”的XML项。
因此,您的行动计划应该是:
1. 使此列使用适当的数据类型 - XML 2. 更详细地告诉我们您存储在其中的XML的类型以及您想从该XML中获取什么。

谢谢您的快速回复。将数据类型更改为 XML。 - Learning Singh

0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接