使用sp_xml_preparedocument可以将XML字元串緩存到SQLServer的記憶體中,并提供一個句柄來通路他
使用OPENXML可以讀取緩存中的資料
使用sp_xml_removedocument可以釋放掉緩存中的資源
下面是一個示例
DECLARE @XmlText VARCHAR ( 8000 )
DECLARE @ProductInfo TABLE (
ItemNo CHAR ( 10 ),
Description varchar ( 200 )
)
DECLARE @XmlHanlder INT
SET @XmlText = '
<root>
<ProductInfo>
<ItemNo>00-000-001</ItemNo>
<Description>Keyboard</Description>
</ProductInfo>
<ProductInfo>
<ItemNo>00-000-002</ItemNo>
<Description>Hard Disk</Description>
</ProductInfo>
</root> '
EXEC sp_xml_preparedocument @XmlHanlder OUTPUT, @XmlText
INSERT @ProductInfo (
ItemNo,
Description)
SELECT
ItemNo,Description
FROM
OPENXML( @XmlHanlder , ' /root/ProductInfo ' , 2 )
WITH (
ItemNo CHAR ( 10 ),
Description varchar ( 200 ))
EXEC sp_xml_removedocument @XmlHanlder
SELECT * FROM @ProductInfo