位置: 编程技术 - 正文

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

  • 怎么算一般纳税人
  • 个体工商户定期定额征收个人所得税
  • 房地产开发产品科目
  • 发货过程
  • 基本存款账户可以换银行吗?
  • 资产负债表期末数是本年累计数吗
  • u8已记账怎么修改年初余额
  • 税务系统重置密码
  • 食品发票可以报销餐费吗
  • 会计凭证负数金额怎么填
  • 管理费用福利费和应付职工薪酬福利费区别
  • 企业所得税逾期了一定要去税局前台申报吗
  • 个人非专利技术转让属于什么收入
  • 折价购入股权
  • 无使用价值的存货属于资产吗
  • 免税企业开了含税发票
  • 接受长期股权投资的条件
  • 合并报表中长期股权投资包括
  • 增值税发票可以抵税吗
  • 工商年报中纳税总额包括工会经费吗
  • 监督机关包括哪些
  • 印花税应税凭证填是还是否
  • 小规模纳税人出售不动产征收率
  • 福建水利建设专业排名
  • 附加税税种认定不完整是什么意思
  • 没有库存先开票再发货
  • 银行开户存入的钱怎么取
  • 冲红的进项税发票入账处理
  • 按月预缴企业所得税的企业有哪些
  • 申报个税是按哪个月的工资表
  • 不含税进货价
  • 怎么简单快速的辨别是铝是锡
  • 会计如果做假账
  • 商会收到的会费要交企业所得税
  • 以固定资产换入无形资产
  • thinkphp import
  • 实习生究竟该怎么缴个税?
  • 税控系统维护费抵扣申报表怎么填
  • 海峡群岛属于哪个洲
  • linux搭建web服务器
  • 信用减值损失在借方是增加还是减少
  • 支付宝提现到对公账户怎么做账
  • 累计应缴预缴所得税怎么算
  • 删除命令rm rf
  • sybaris插件包
  • php实现将base64格式图片保存在指定目录的方法
  • 固定资产实收资本按照什么入账
  • 增值税普通发票怎么开
  • 财务费用税前扣除标准是多少
  • 企业所得税季初和季末怎么算
  • 织梦官方网站
  • 待抵扣进项税额转出会计分录
  • 金融资产减值包括
  • 通行费发票如何勾选
  • 兼职收入用缴纳增值税吗
  • 税控服务费减免会计分录
  • 多交增值税退税抵欠怎么处理
  • 还银行贷款如何计算利息
  • 冲减备用金什么意思
  • 支付贷款利息属于筹资活动吗
  • 费用票成本票有哪些
  • 对方公司收钱不开发票怎么办
  • 微信怎么帮别人代缴社保
  • 什么是增值税
  • 序列号错误或不完整
  • linux下scp远程拷贝包含空格的目录或者文件的解决方法
  • pm2使用手册
  • javascript 引入
  • 搭建gitbook
  • js里写css
  • OpenGL图元管理
  • java使用jni
  • unity获取当前位置
  • it unes
  • javascript中的splice
  • PYTHON内置函数,标准库,三方库的区别
  • jQuery Ajax 实例代码 ($.ajax、$.post、$.get)
  • 增值税应税货物清单
  • 大数据在税务稽查的应用
  • 江苏国税局官网登录
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设