将XML文件导入SQL表?

时间:2016-05-18 08:44:55

标签: sql sql-server xml

我在SQL查询中有这段代码:

CREATE TABLE Products(
 P VARCHAR(30));

 Select *
 from products

 Declare @x xml 

 Select @x=P
 from openrowset (BULK 'C:\Pantanir.xml', Single_blob) AS Products(P)  

 Select @x

其中P是表产品中的列。有了这个我只将XML文件导入我的数据库,但我不会创建一个这样的表格,但这不起作用。

 from openxml (@hdoc, '/reservation',1)
 with ('Someattribute')

我的XML文件的一部分如下所示。我想创建两列(ReservationNo和SecurityCode)并从XML文件中获取值并将它们导入SQL表。这可能吗?

  <reservation>
    <reservationNo>9833591189</reservationNo>
    <securityCode>ad4badfd56</securityCode>

1 个答案:

答案 0 :(得分:2)

请尝试以下代码。这是在SQL Server 2012中提供输出。

DECLARE @XML XML = ' <reservation>
    <reservationNo>9833591189</reservationNo>
    <securityCode>ad4badfd56</securityCode></reservation>'

SELECT
    reservationNo = Events.value('(reservationNo)[1]', 'varchar(100)'),
    securityCode = Events.value('(securityCode)[1]', 'varchar(100)')
FROM
    @XML.nodes('/reservation') AS XTbl(Events)