SQL 查询,批量录入。

振乾 2012-02-10 10:01:44





IF(OBJECT_ID('MeteoReport') IS NOT null)
DROP TABLE MeteoReport
CREATE TABLE MeteoReport
(
ID INT PRIMARY KEY IDENTITY(1,1),
code4 VARCHAR(50),
utctime DATETIME,
reprottype INT
)

declare @xmlDoc xml;
set @xmlDoc='<MeteoReport>
<item code4="ZSSD" utctime="2012-2-9" reportType=1 />
<item code4="PANC" utctime="2012-2-9" reportType=2 />
<item code4="ZSGS" utctime="2012-2-9" reportType=0 />
</MeteoReport>'
--1.如何对XML进行 查询显示?
--2.如何将xml的数据插入到 表中



请各位高手赐教!
...全文
160 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
老猫五号 2012-02-10
  • 打赏
  • 举报
回复
DECLARE @x xml
SET @x='
<Root>
<row id="1"><name>Larry</name><oflw>some text</oflw></row>
<row id="2"><name>Joe</name></row>
<row id="3" />
</Root>
'
SELECT T.c.value('@id','int') as id,
T.c.query('name') as NAME
FROM @x.nodes('/Root/row') T(c)
go
jmx123456789 2012-02-10
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 q806294478 的回复:]
SQL code

[/Quote]

mark
q806294478 2012-02-10
  • 打赏
  • 举报
回复
IF(OBJECT_ID('MeteoReport') IS NOT null)
DROP TABLE MeteoReport
CREATE TABLE MeteoReport
(
ID INT PRIMARY KEY IDENTITY(1,1),
code4 VARCHAR(50),
utctime DATETIME,
reportType INT
)
declare @idoc int
declare @xmlDoc xml;
set @xmlDoc='<MeteoReport>
<item code4="ZSSD" utctime="2012-2-9" reportType="1" />
<item code4="PANC" utctime="2012-2-9" reportType="2" />
<item code4="ZSGS" utctime="2012-2-9" reportType="0" />
</MeteoReport>'
EXEC sp_xml_preparedocument @idoc OUTPUT, @xmlDoc
insert into MeteoReport(code4,utctime,reportType)
SELECT *
FROM OPENXML (@idoc, '/MeteoReport/item',1)
WITH (
code4 VARCHAR(50),
utctime DATETIME,
[reportType] [INT]
)
EXEC sp_xml_removedocument @idoc
select * from MeteoReport

结果为:
ID code4 utctime reportType
1 ZSSD 2012-02-09 00:00:00.000 1
2 PANC 2012-02-09 00:00:00.000 2
3 ZSGS 2012-02-09 00:00:00.000 0

(3 行受影响)

(3 行受影响)

34,594

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧