位置: 编程技术 - 正文

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

  • 初级会计职称能加多少工资
  • 初级税务师什么时候报名
  • 增值税的视同销售行为有哪些
  • 公司有残疾人如何进行增值税减免备案
  • 简单的记账方法明细表格怎么做
  • 永续盘存制的含义
  • 固定资产按月折旧了,还能一次折旧么
  • 销售收入冲红如何入账
  • 核定征收怎么交企业所得税
  • 农产品收购发票上的买价含税吗
  • 收到保险公司财产理赔款怎么做账
  • 水利申报怎么申报
  • 个人之间的房屋抵押需要去房管局做登记吗
  • 花椒油的税率
  • 初级备考需要多长时间
  • 个人股票期权收益所得税怎么缴纳?
  • 没有税控盘怎么开票
  • 鸿蒙密码锁设置密码的方法
  • 读会计没有考到证 能出来干什么
  • 未分配利润是怎么算出来的
  • 市净率怎么计算举例说明
  • 事业单位工会经费会计账务处理办法
  • award bios设置详解
  • 债转股是好还是坏
  • 安装win7系统的硬件要求
  • ph是什么文件
  • 租赁费和场地租赁费区别
  • 低值易耗品的管理和流程ppt
  • 债权类股票有哪些
  • php framework框架
  • 捐款怎么处理
  • 前端笔记软件
  • 全卷积网络fcn详解
  • mysql内连接查询使用汉语作为官方语言的所有国家
  • 小规模纳税人免征增值税的账务处理
  • 已抵扣发票在什么地方查
  • 税率开成0了怎么办
  • 税款所属期止是怎么写
  • 金蝶k3如何设置现金流量表取数公式
  • 金蝶迷你版年结账套
  • MySQL中distinct与group by语句的一些比较及用法讲解
  • 建筑劳务公司需要什么资质
  • 一般纳税人商品暂估按销售的数量可以暂估成本吗
  • 以前年度损益调整借贷方向
  • 农产品开具发票税率是多少?
  • 小规模纳税人实行简易征收办法
  • 跨月普票发票怎么红冲
  • 现金流动负债比率越大越好吗
  • 安全生产费计提和使用的账务怎么处理
  • 公司购买汽车的购置税可以抵税吗
  • 私企的会计都做什么
  • mac安装mysql没看见初期密码
  • vm虚拟机中的浏览器在哪
  • ubuntu zed
  • linux无法运行yum
  • win8.1怎么设置自动关机
  • macbookpro如何语音输入
  • linux 安装指令
  • win8安装itunes
  • 如何在linux中添加环境变量
  • crontab环境变量不生效
  • 所见即所得出自哪里
  • cordova怎么样
  • javascript运用
  • css网页布局的基础是什么
  • javascriptj
  • python中re.m
  • react.development.js
  • javascript详细介绍
  • 多个javascript 合并
  • 如何解决老公有外遇
  • 解决烧心最快方法
  • 建筑企业个人所得税管理办法
  • 重庆电子税务局电话人工客服电话
  • 上海社保三方协议
  • 北京市房山区限行范围
  • 收到unknown发来的短信
  • 佛山电动摩托车能上牌吗
  • 农民工12000要交多少个人所得税
  • 认缴制什么时候开始的?
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设