位置: 编程技术 - 正文

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

  • 增值税结转会计科目
  • 研发支出指的是什么
  • 旧设备出口增值税处理
  • 电信宽带个人和公司办收费标准
  • 个人所得税离职补偿金优惠政策
  • 单独计价作为固定资产入账的土地为什么不计提折旧
  • 长期股权投资的账面价值怎么计算
  • 最新企业准则
  • 会计差错更正业务处理怎么操作?
  • 财务软件怎样结转销售成本
  • 短期借款计提利息例题
  • 单位购置汽车如何入账
  • 营改增后还有营业费用吗
  • 安装预算收入
  • 季初是什么意思
  • 实收资本里的钱怎么做账
  • 购入的汽车怎么入账
  • 维修材料属于什么会计科目
  • 事业单位购买固定资产费自行
  • 股权转让未分配利润如何账务处理
  • 年末会计账上应该注意哪些
  • 股东的房产无偿提供给公司用
  • 委托贷款合同效力
  • 以旧换新计税依据
  • 基建工程的各项工作包括
  • 会计科目对应的会计要素
  • 其他应付款计入什么科目
  • win10如何禁止安装任何软件
  • 关于汇算清缴的问题
  • phpstorm运行php
  • 2021发票勾选认证
  • 其他应付款怎么平账
  • 其他应收和其他应付可以共用吗
  • laravel5.4生成验证码的代码
  • 会计政策变更累计数
  • 简单实现php留言功能
  • vue的常见面试题
  • typescript和javascript那个更高级
  • 利用html css javascript做一个网页
  • 给工程项目买保险合法吗
  • 资产减值损失一经计提不得转回
  • 逾期未退押金是否确认收入
  • 小企业会计准则和企业会计准则的区别
  • 月末库存商品成本计算
  • 当月没有发放工资是不是就不用申报个税
  • 资产持有过程中缴纳的税收有哪些
  • 税务处理决定书和处罚决定书
  • 月末进项税大于销项税额怎么结转
  • 税金及附加是什么科目编号
  • 货物出口销售确认流程
  • 残疾人残保金如何计算
  • 清算期间档案转移
  • 一般纳税人资格证书怎么查询
  • 加油费用属于什么科目明细
  • 债务重组的会计例题
  • 失业人员的养老金
  • 进项税销项税增值税的区别
  • 企业的借款费用有哪些处理方法
  • 以前年度账务错误应该怎么处理的
  • 现金支出业务的流程步骤包括
  • sqlserver游标的使用
  • windows server 2008 64位MySQL5.6免安装版本配置方法图解
  • centos 7.5 7.6
  • 系统自动设置网络连接
  • win7系统浏览器不见了
  • win7系统设置鼠标灵敏度
  • shell自动化
  • javascript密码强度
  • css样式不能制作体积更小下载更快的网页
  • shell脚本 -ne 0
  • js如何获取cookie的值
  • js进行表单验证的目的是什么
  • javascript简单代码
  • js教程 chm
  • doctype报错
  • 如何用python编写一个程序
  • 广东省电子税务局登录方式
  • 个税申报系统如何增加新单位
  • 消费税申报详细流程图
  • 国家税务总局176号公告
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设