如何在SQLServer2005中读取XML数据

如何在SQLServer2005中读取XML数据,sql,sql-server,xml,sql-server-2005,tsql,Sql,Sql Server,Xml,Sql Server 2005,Tsql,我有一个表,它的XMLData列是文本。如何从该列读取数据使您的列成为XML数据类型而不是文本。以下MSDN文章详细介绍了sql server中如何支持XML: 只要该列的类型为TEXT,您就无法使用它做任何有用的事情,真的文本也已被弃用,请停止使用它 如果它只存储XML,则将其设置为数据类型XML 您可以使用XPath和XQuery从XML中提取单独的信息项,类似于: SELECT YourXMlColumn.value('(/Root/SomeItems/Item/FirstName

我有一个表,它的XMLData列是文本。如何从该列读取数据

使您的列成为XML数据类型而不是文本。以下MSDN文章详细介绍了sql server中如何支持XML:


只要该列的类型为
TEXT
,您就无法使用它做任何有用的事情,真的<代码>文本也已被弃用,请停止使用它

如果它只存储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项的“伪表”

因此,你的行动计划应该是:

  • 使此列使用适当的数据类型-
    XML
  • 请更详细地告诉我们您在其中存储了什么类型的XML,以及您希望从该XML中获得什么

  • TSQL?C#?缺少足够的细节…为什么不将其存储为XML数据类型而不是文本?这将是第1步。您将无法对文本数据类型进行任何有趣的操作。它被弃用的原因之一是它已经存在了。。。。不能改变。必须按原样使用它。。。有什么办法吗???
    altertabledbo.YourTable altercolumnyourxmlcolumnxml
    完成了…感谢您的快速回复。将数据类型更改为XML