在SQL中访问XML字符串

来源:互联网 发布:局域网批量安装软件 编辑:程序博客网 时间:2024/06/13 05:46

在SQL中访问XML字符串  

使用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