如何在SQLServer2005中读取XML数据
我有一个表,它的XMLData列是文本。如何从该列读取数据使您的列成为XML数据类型而不是文本。以下MSDN文章详细介绍了sql server中如何支持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
只要该列的类型为
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
TSQL?C#?缺少足够的细节…为什么不将其存储为XML数据类型而不是文本?这将是第1步。您将无法对文本数据类型进行任何有趣的操作。它被弃用的原因之一是它已经存在了。。。。不能改变。必须按原样使用它。。。有什么办法吗???
altertabledbo.YourTable altercolumnyourxmlcolumnxml
完成了…感谢您的快速回复。将数据类型更改为XML