位置: 编程技术 - 正文

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 存储过程语句)

  • 营业税金及附加包括哪些
  • 个税必须每个人交吗
  • 车辆购置税税收优惠
  • 新购车辆车船税多少钱
  • 城建税的征税范围不包括农村对不对
  • 稽查查补的税款用什么时候的税率表示
  • 小规模纳税人预缴税款怎么填申报表
  • 销售出库发票会计分录怎么做?
  • 交通费补贴报销的会计分录怎么做?
  • 客户充值
  • 预交税费怎么做分录
  • 企业所得税税前扣除异常是什么意思
  • 营改增个体工商户优惠政策
  • 应税行为扣除额期初余额
  • 雇佣临时工发生意外能追房东赔偿吗
  • 查询税务信用评级
  • 预付款税率是多少
  • 什么是中型企业?
  • 电商退款
  • 发工资时忘记扣个税了怎么做账
  • 更改onedrive文件夹位置
  • 生产企业销售给其他单位的生产工具
  • 企业收到利息收入开发票吗
  • 增值税四个税种
  • psr.exe是什么意思
  • 产品试用装怎么做会计分录
  • Linux+Nginx+MySQL下配置论坛程序Discuz的基本教程
  • 个税返还的会计处理方法
  • 分配股利什么时候做账
  • 预收账款调增应纳税所得额
  • 利用php实现开心麻花
  • swoole windows版本
  • 贷款和应收款项应采用实际利率法,按摊余成本计量
  • python中各种颜色
  • 企业支付给员工的一次性伤残就业补助金计入什么科目
  • JavaScript includes() 方法
  • 公司的财产保险包括哪些
  • 分配结转制造费用时借方科目?
  • html表单合并行
  • 发生广告费的会计分录
  • ssh怎么带密码
  • 使用spring框架,大概有哪些步骤
  • three.js入门指南
  • sudo命令功能
  • firewall enable
  • 哪些收据可以入账且可以税前抵扣
  • 辞退员工福利
  • 辅助生产车间照明费用计入什么科目
  • 单位全额承担社保能税前扣除吗
  • 销售车位应怎么交税
  • Access数据库文件以什么作为文件后缀名
  • sql server 2005安装失败
  • 删除mysql重复数据
  • 找社保代理公司需要提供什么资料
  • 软件即征即退开票信息与资料不符
  • 专票要写开户行和账号
  • 企业购买了数千亿资产
  • 企业基建工程
  • 货代代缴增值税关税如何做账
  • 手写账目表格怎么做
  • 金税盘减免税款的会计分录
  • 如何结转完工产品成本和已销产品成本
  • 海关发票丢失怎么处理
  • Windows Server 2003将于7月14日停服 想用收费
  • windows怎么加速
  • freebsd中文手册
  • Win7旗舰版系统安装
  • dsapi.exe是什么
  • 联想win8一键还原系统操作步骤
  • win10播放视频的软件
  • mx1014
  • windows10 2021预览版
  • div display inline-block
  • css渲染规则
  • jquery验证
  • javascript ES6 新增了let命令使用介绍
  • unity2018预制体
  • 在centos上安装pycharm
  • 惠州市国家税务局张新华简历
  • 江苏国税电子网
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设