一 简介
系统函数OPENXML 对xml文档中指定的部分生成行集视图。由于OPENXML可以生成行集,它可以用在需要行集的Transact-SQL语句中,表、视图或函数OPENROWSET也可以提供行集。
二 基本操作
1. 仅映射Attribute(flags = 1 or XML_ATTRIBUTE)
将xml中指定结点映射成记录,结点的属性值作为记录的域值
DECLARE @idoc int
DECLARE @doc varchar(1000)
SET @doc ='
<ROOT>
<Customer CustomerID="1" ContactName="Paul Henriot">
<Order CustomerID="1" EmployeeID="5">
<OrderDetail OrderID="10248" ProductID="11" Quantity="12"/>
<OrderDetail OrderID="10248" ProductID="42" Quantity="10"/>
</Order>
</Customer>
<Customer CustomerID="2" ContactName="Carlos Gonzlez">
<Order CustomerID="2" EmployeeID="3">
<OrderDetail OrderID="10283" ProductID="72" Quantity="3"/>
</Order>
</Customer>
</ROOT>'
--Create an internal representation of the XML document.
EXEC sp_xml_preparedocument @idoc OUTPUT, @doc
-- Execute a SELECT statement that uses the OPENXML rowset provider.
SELECT *
FROM
OPENXML (@idoc, '/ROOT/Customer',1)