SQL XML 2

DECLARE  @Items XML
SET  @Items  = 
     ' <bookstore>
<book category="COOKING">
  <title lang="en">Everyday Italian2</title>
  <author>Giada De Laurentiis</author>
  <year>2005</year>
  <price>30.00</price>
</book>

<book category="CHILDREN">
  <title lang="en">Harry Potter</title>
  <author>J K. Rowling</author>
  <year>2005</year>
  <price>29.99</price>
</book>

<book category="WEB">
  <title lang="en">XQuery Kick Start</title>
  <author>James McGovern</author>
  <author>Per Bothner</author>
  <author>Kurt Cagle</author>
  <author>James Linn</author>
  <author>Vaidyanathan Nagarajan</author>
  <year>2003</year>
  <price>49.99</price>
</book>

<book category="WEB">
  <title lang="zh">Learning XML</title>
  <author>Erik T. Ray</author>
  <year>2003</year>
  <price>39.95</price>
</book>

</bookstore>
'

DECLARE  @tb  TABLE (
            id  INT  IDENTITY( 1 , 1PRIMARY  KEY
           ,title  NVARCHAR( 100)
           ,author  NVARCHAR( 100)
           , YEAR  INT
           ,price  DECIMAL( 10 , 3)
        )

DECLARE  @idoc  INT
EXEC sp_xml_preparedocument  @idoc OUTPUT, @Items

INSERT  INTO  @tb
SELECT  *
FROM   OPENXML( @idoc , ' //book ' , 2)
        WITH (
           title  NVARCHAR( 100)
          ,author  NVARCHAR( 100)
          , YEAR  INT
          ,price  DECIMAL( 10 , 3)
       ) 
   
SELECT  *  FROM    @tb

你可能感兴趣的:(sql)