查询比较表中的数据和同一表XML文件的数据

时间:2015-01-08 10:09:21

标签: sql-server-2008

有没有办法从xml文件中获取数据并将数据与数据库表进行比较 使用查询

1 个答案:

答案 0 :(得分:0)

您可以将XML文件插入到包含XML类型列的表中。

E.g。

   CREATE TABLE [dbo].[SomeXMLTable](
    [SomeXMLColumn] [xml] NULL
) ON [PRIMARY]

INSERT INTO [SomeXMLTable]
           ([SomeXMLColumn])
     VALUES
        ('<root>
        <node1>1</node1>
        <node2>2</node2>
        <node3>3</node3>
        </root>')

一旦你有了, 您可以从xml中提取值,并将其与任何包含相应值的表进行比较。

SELECT 
SomeXMLColumn.value('(/root/node1)[1]', 'varchar(max)' ) as Node1Value,
SomeXMLColumn.value('(/root/node2)[1]', 'varchar(max)' ) as Node2Value,
SomeXMLColumn.value('(/root/node3)[1]', 'varchar(max)' ) as Node3Value
FROM   SomeXMLTable