位置: 编程技术 - 正文

SQLSERVER 2005中使用sql语句对xml文件和其数据的进行操作(很全面)(sql server使用sql语句)

编辑:rootadmin
--用SQL多条可以将多条数据组成一棵XML树L一次插入 --将XML树作为varchar参数传入用 --insert xx select xxx from openxml() 的语法插入数据 -----------------------------------导入,导出xml-------------------------- --1导入实例 --单个表 create table Xmltable(Name nvarchar(),Nowtime nvarchar()) declare @s as nvarchar(); set @s = N'' <Xmltables> <Xmltable Name="1" Nowtime="-1-1">0</Xmltable> <Xmltable Name="2" Nowtime="-1-1">0</Xmltable> <Xmltable Name="3" Nowtime="-1-1">0</Xmltable> <Xmltable Name="4" Nowtime="-1-1">0</Xmltable> <Xmltable Name="5" Nowtime="-1-1">0</Xmltable> </Xmltables>''; declare @idHandle as int ; EXEC sp_xml_preparedocument @idHandle OUTPUT, @s insert into Xmltable(Name,Nowtime) select * from openxml(@idHandle,N''/Xmltables/Xmltable'') with dbo.xmltable EXEC sp_xml_removedocument @idHandle select * from Xmltable -----------------------读入第二个表数据-------------------- create table Xmlta(Name nvarchar(),Nowtime nvarchar()) declare @s as nvarchar(); set @s =N'' <Xmltables> <Xmltb Name="6" Nowtime="-2-1">0</Xmltable> <Xmlta Name="" Nowtime="-2-1">0</Xmlta> </Xmltables> ''; declare @idHandle as int ; EXEC sp_xml_preparedocument @idHandle OUTPUT, @s insert into Xmlta(Name,Nowtime) select * from openxml(@idHandle,N''/Xmltables/Xmlta'') with dbo.xmlta EXEC sp_xml_removedocument @idHandle select * from Xmlta drop table Xmlta -----------------------同时读入多表数据---------------- create table Xmlta(Name nvarchar(),Nowtime datetime) create table Xmltb(Name nvarchar(),Nowtime datetime) declare @s as nvarchar(); set @s =N'' <Xmltables> <Xmlta Name="1" Nowtime="-2-1">0</Xmlta> <Xmltb Name="2" Nowtime="-2-1">0</Xmltb> </Xmltables> ''; --<Xmlta ></Xmlta> 则插入的数据为null declare @idHandle as int ; EXEC sp_xml_preparedocument @idHandle OUTPUT, @s --表a insert into Xmlta(Name,Nowtime) select * from openxml(@idHandle,N''/Xmltables/Xmlta'') with dbo.Xmlta --表b insert into Xmltb(Name,Nowtime) select * from openxml(@idHandle,N''/Xmltables/Xmltb'') with dbo.Xmltb EXEC sp_xml_removedocument @idHandle select * from Xmlta select * from Xmltb drop table Xmlta,Xmltb --生成xml文件单表 DECLARE @xVar XML SET @xVar = (SELECT * FROM Xmltable FOR XML AUTO,TYPE) select @xVar --1读取xml文件插入表中 DECLARE @hdoc int DECLARE @doc xml select @doc=BulkColumn from (SELECT * FROM OPENROWSET(BULK ''E:xml.xml'',SINGLE_BLOB) a)b EXEC sp_xml_preparedocument @hdoc OUTPUT,@doc SELECT * into #temp FROM OPENXML (@hdoc,N''/root/dbo.xmltable'') with (name nvarchar(),Intro nvarchar()) exec sp_xml_removedocument @hdoc --2读取xml文件插入表中 SELECT * into #temp FROM OPENROWSET( BULK ''E:xml.xml'',SINGLE_BLOB) AS x DECLARE @hdoc int DECLARE @doc xml select @doc=BulkColumn from #temp EXEC sp_xml_preparedocument @hdoc OUTPUT,@doc SELECT * into #temp2 FROM OPENXML (@hdoc,N''/root/dbo.xmltable'') with (name nvarchar(),Intro nvarchar()) exec sp_xml_removedocument @hdoc /* ---空的处理 <dbo.xmltable name="1" Intro="" /> <dbo.xmltable name="2" /> <dbo.xmltable name="3" Intro="c" /> 1 2 NULL 3 c */ drop table xmlt ------------------------------------xml数据操作------------------ --类型化的XML CREATE TABLE xmlt(ID INT PRIMARY KEY, xCol XML not null) --T-sql生成数据 insert into xmlt values(1, ''<Xmltables> <Xmltable Name="1" NowTime="-1-1">1</Xmltable> <Xmltable Name="2" NowTime="-1-2">2</Xmltable> <Xmltable Name="3" NowTime="-1-3">3</Xmltable> <Xmltable Name="4" NowTime="-1-4">4</Xmltable> <Xmltable Name="5" NowTime="-1-5">5</Xmltable> </Xmltables>'') --dataset生成数据 insert into xmlt values(2, ''<?xml version="1.0" encoding="gb" ?> <Xmltables> <Xmltable><Name>1</Name><NowTime>-1-1</NowTime>1</Xmltable> <Xmltable><Name>2</Name><NowTime>-1-2</NowTime>2</Xmltable> <Xmltable><Name>3</Name><NowTime>-1-3</NowTime>3</Xmltable> </Xmltables>'') --读取Name=1 的??,?使用 SELECT xCol.query(''/Xmltables/Xmltable[@Name="1"]'') from xmlt where ID =1 --读取Name=1 的??值,?使用 SELECT xCol.query(''/Xmltables/Xmltable[@Name="1"]/text()'') from xmlt where ID =1 --读取Name=5 的Name ?傩灾担??使用 SELECT xCol.query(''data(/Xmltables/Xmltable[@Name])[5]'') from xmlt where ID =1 --读取所有节点Name SELECT nref.value(''@Name'', ''varchar(max)'') LastName FROM xmlt CROSS APPLY xCol.nodes(''/Xmltables/Xmltable'') AS R(nref) where ID=1 --读取所有节点NowTime SELECT nref.value(''@NowTime'', ''varchar(max)'') LastName FROM xmlt CROSS APPLY xCol.nodes(''/Xmltables/Xmltable'') AS R(nref) where ID=1 SELECT xCol.query(''data(/Xmltables/Xmltable[@Name=5]/@NowTime)[1]'') from xmlt where ID =1 --读取Name=1 的Name ?傩灾 SELECT xCol.value(''data(/Xmltables/Xmltable//Name)[1]'',''nvarchar(max)'') FROM xmlt where ID=2 --读取NowTime=1 的NowTime ?傩灾 SELECT xCol.value(''data(/Xmltables/Xmltable/NowTime)[1]'',''nvarchar(max)'') FROM xmlt where ID=2 --SELECT xCol.value(''data(/Xmltables/Xmltable[@Name])[1]'',''nvarchar(max)'') FROM xmlt where ID=2 ------------------------------------------函数使用---------------- --query()、exist() SELECT pk, xCol.query(''/root/dbo.xmltable/name'') FROM docs SELECT xCol.query(''/root/dbo.xmltable/name'') FROM docs WHERE xCol.exist (''/root/dbo.xmltable'') = 1 --modify() UPDATE docs SET xCol.modify('' insert <section num="2"> <heading>Background</heading> </section> after (/doc/section[@num=1])[1]'') --value() SELECT xCol.value(''data((/root/dbo.xmltable//name))[2]'',''nvarchar(max)'') FROM docs where pk=3 --nodes() SELECT nref.value(''@Name'', ''varchar(max)'') LastName FROM xmlt CROSS APPLY xCol.nodes(''/Xmltables/Xmltable'') AS R(nref) --query()、value()、exist() 和nodes(),modify() SELECT CAST(T.c as xml).query(''/root/dbo.xmltable/name'') FROM OPENROWSET(BULK ''E:xml.xml'',SINGLE_BLOB) T(c)

推荐整理分享SQLSERVER 2005中使用sql语句对xml文件和其数据的进行操作(很全面)(sql server使用sql语句),希望有所帮助,仅作参考,欢迎阅读内容。

SQLSERVER 2005中使用sql语句对xml文件和其数据的进行操作(很全面)(sql server使用sql语句)

文章相关热门搜索词:sql server 2005使用教程,sql server 2005如何使用,sql2005使用,sql2005使用,sql2005使用,sqlserver2005使用,sqlserver2005使用,sql server 2005使用教程,内容如对您有帮助,希望把文章链接给更多的朋友!

sql 存储过程分页代码 createdatabaseTestonprimary(name='Test_Data.mdf',filename='D:我的资料sql备份Test_Data.mdf')logon(name='Test_Data.ldf',filename='D:我的资料sql备份Test_Data.ldf')ifobject_id('tb')isn

sqlserver 无法在服务器上访问指定的路径或文件 刚装的sqlserver系统,附加数据库是出现如下提示C:ProgramFilesMicrosoftSQLServerMSSQL.1MSSQLDATA无法在服务器上访问指定的路径或文件。请确保您具有必需

SqlServer 中字符函数的应用 USEDemoGO/*将表Code的列String中的值提取放到Record表中String中字符类型为dsddddd,,,3其中最后一位为标记对于Record表中的BiaoJi前面的以','分割的是值

标签: sql server使用sql语句

本文链接地址:https://www.jiuchutong.com/biancheng/319318.html 转载请保留说明!

上一篇:SQLServer2005 XML数据操作代码

下一篇:sql2005 存储过程分页代码(sql 存储过程语句)

  • 总公司是小规模分公司是一般纳税人
  • 财务软件增加站点计入什么科目
  • 事业单位资产负责比往年增加表明什么
  • 减去税率怎么算
  • 融资租赁担保余值
  • 无发票入账违反哪条法律
  • 增值税附征的计算公式
  • 500元以内的商品都有哪些
  • 其他应付款是不是长期负债
  • 合并会计报表中的未分配利润反应的是什么
  • 销售边角料收入属于什么收入
  • 质量保证金的预留比例是多少
  • 企业购买饮水机滤芯会计分录
  • 所得税不能税前扣除项目
  • 收到未到期的银行承兑汇票会计分录
  • 进口料件和出口成品的关系
  • 一般纳税人出售不动产增值税税率是多少
  • 因为担保被起诉怎么办
  • 个人业务费是什么
  • macbook发热会烧坏吗
  • 苹果x如何显示电量数字
  • svhost.exe - svhost是什么进程 有什么作用
  • 增值税转出未交增值税是什么意思
  • 免抵退不得免征和抵扣是什么意思
  • 超市发购物卡给员工会计分录
  • 建筑企业总产值是什么
  • 出库单可以补吗
  • 品质扣款单
  • 货物运输发票怎么备注发票样板
  • 盈余公积金可以用来扩大公司生产经营
  • 其他综合收益明细科目
  • 模型未来的发展趋势
  • json与对象的区别
  • 【BEV】TPVFormer复现以及原理
  • print函数php
  • 网上学电脑的软件
  • 应交税款怎么计算
  • 收回款项的会计处理分录
  • 包装物为什么是无菌的
  • 外购商品转为自用固定资产,进项税
  • 出口货物不予免、抵和退税为什么是按外销离岸价计算
  • 健身房注册公司能注册医疗吗?
  • 会计人员信息采集怎么填
  • 现金流量套期与公允价值套期的区别
  • 办外经证需要交税吗
  • 企业房产税优惠政策2023
  • 开办费包括哪些内容多少钱
  • 数据库中的内容怎么换行
  • mysql 5.7.12 winx64手动安装教程
  • Ubuntu安装ssh
  • centos环境搭建
  • win7系统如何一键还原
  • win7鼠标点了没反应
  • xp移动系统
  • ubuntu系统怎么修改root密码
  • spyagent4.exe - spyagent4是什么进程
  • win8删除所有内容并重新安装windows
  • 错误代码0x8007007B
  • win8怎么用
  • gpio接口
  • ubuntu搭建ss
  • 飞车超人助手官网
  • android去掉状态栏第三方图标
  • python获取当前地址
  • jquery的使用方法
  • jQuery的 $.ajax防止重复提交的两种方法(推荐)
  • js表单事件有哪些
  • js状态管理
  • JavaScript window.setTimeout() 的详细用法
  • python的cumprod
  • js密码验证正则表达式
  • js 模块 modules
  • js初级教程
  • 税务申报显示重名怎么办
  • 企业注销结果查询
  • 四川省网上税务局怎么登录
  • 中国的消费税是怎么算的
  • 进口小麦关税税率是多少
  • 江苏省官网
  • 一月份纳税申报
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设