惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

V
V2EX
P
Proofpoint News Feed
D
DataBreaches.Net
C
Check Point Blog
L
LangChain Blog
量子位
美团技术团队
Vercel News
Vercel News
人人都是产品经理
人人都是产品经理
N
Netflix TechBlog - Medium
V
Visual Studio Blog
Microsoft Security Blog
Microsoft Security Blog
博客园 - 【当耐特】
MongoDB | Blog
MongoDB | Blog
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
Last Week in AI
Last Week in AI
The GitHub Blog
The GitHub Blog
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
U
Unit 42
腾讯CDC
M
MIT News - Artificial intelligence
Microsoft Azure Blog
Microsoft Azure Blog
Blog — PlanetScale
Blog — PlanetScale

博客园 - jirong

SHTML 教程 automation服务器不能创建对象 C#动态方法调用 - jirong - 博客园 加密存储过程,函数,触发器,视图的破解 - jirong - 博客园 SQLServer和Oracle的常用函数对比 窗口最大化 - jirong - 博客园 存储过程编写经验和优化措施 ASP.NET 2.0 Internet安全之参考实现 常用正则表达式 - jirong - 博客园 对象序列化 游标的用法 javascript事件查询 JavaScript就这么回事 ASP.NET2.0+SQL Server2005构建多层应用 Microsoft .NET Pet Shop 4 架构与技术分析 分页控件 ASP.NET 调味品:AJAX 我写的第一个CodeSmith模板(添加修改数据页面) CodeSmith应用(四):实现选择路径对话框
SQL2005 读取 XML 数据
jirong · 2009-06-14 · via 博客园 - jirong

1、首先要将SQL Server 的xp_cmdshell 的功能启动,随后我们将使用xp_cmdshell 来读取XML文档内容,执行如下脚本

EXEC sp_configure 'show advanced options'1;RECONFIGURE;EXEC sp_configure 'xp_cmdshell'1;RECONFIGURE;

2、请将以下的XML内容保存成aa.xml,并存于“C:\”下。

<?xml version="1.0" standalone="yes"?>
<NewDataSet>
  
<Table>
    
<productID>1</productID>
    
<productCode>04ZS1-1</productCode>
    
<productName>单人沙发</productName>
    
<providerID>1</providerID>
    
<productTypeID>11</productTypeID>
    
<productKindID>12</productKindID>
    
<productColor>0</productColor>
    
<productBuyPrice>994.0000</productBuyPrice>
    
<productWholesalePrice>994.0000</productWholesalePrice>
    
<productSalePrice>2237.00</productSalePrice>
    
<productVolume>0</productVolume>
    
<productIsUse>0</productIsUse>
    
<productType>0</productType>
    
<IsMaterial>1</IsMaterial>
    
<saleQuotiety>3</saleQuotiety>
    
<isSplit>1</isSplit>
    
<isUpdate>0</isUpdate>
    
<syncid>6745</syncid>
    
<SetMoney>1518.00</SetMoney>
    
<IsQm>1</IsQm>
    
<materialGradeID>0</materialGradeID>
    
<IsZDY>0</IsZDY>
    
<UpdateTime>2009-06-12T14:06:02.467+08:00</UpdateTime>
    
<periodType>0</periodType>
  
</Table>
  
<Table>
    
<productID>2</productID>
    
<productCode>04ZS1-1</productCode>
    
<productName>单人沙发</productName>
    
<providerID>1</providerID>
    
<productTypeID>11</productTypeID>
    
<productKindID>12</productKindID>
    
<productIntCode>10367</productIntCode>
    
<productUnit></productUnit>
    
<productColor>0</productColor>
    
<productBuyPrice>994.0000</productBuyPrice>
    
<productWholesalePrice>994.0000</productWholesalePrice>
    
<productSalePrice>2237.00</productSalePrice>
    
<productVolume>0.48</productVolume>
    
<productWeight>36</productWeight>
    
<productIsUse>0</productIsUse>
    
<productType>1</productType>
    
<IsMaterial>1</IsMaterial>
    
<saleQuotiety>2.25</saleQuotiety>
    
<isSplit>1</isSplit>
    
<isUpdate>0</isUpdate>
    
<syncid>6746</syncid>
    
<SetMoney>1656.00</SetMoney>
    
<IsQm>1</IsQm>
    
<materialGradeID>0</materialGradeID>
    
<IsZDY>0</IsZDY>
    
<periodType>0</periodType>
  
</Table>
 
 
</NewDataSet>

3、执行以下命令

SELECT * into #temp1 FROM OPENROWSET(
   
BULK 'C:\aa.xml' ,SINGLE_BLOB  ) AS x
 
DECLARE @hdoc int 
 
DECLARE @doc xmlselect @doc=BulkColumn  from #temp1EXEC sp_xml_preparedocument @hdoc OUTPUT,@doc SELECT * into #temp2
FROM OPENXML (@hdoc'/NewDataSet/Table',3)
with  (productID  int
                 productCode 
varchar(50),
                 productName 
varchar(50)   )exec sp_xml_removedocument @hdoc select * from #temp1
select * from #temp2drop table #temp1
drop table #temp2