sqlserver html文档,SqlServer操作XML学习

在 SQLServer2005 中对 XML 的处理功能显然增强了很多,提供了 query(),value(),exist(),modify(),nodes() 等函数。

关于 xml ,难以理解的不是 SQLServer 提供的函数,而是对 xml 本身的理解,看似很简单的文件格式,处理起来却是非常困难的。本文只是初探一下而已。

详见 SQLServer 联机帮助:

主题

说明

query() 方法( xml 数据类型)

此方法用于对 XML 实例进行查询。

value() 方法( xml 数据类型)

此方法用于从 XML 实例检索 SQL 类型的值。

exist() 方法( xml 数据类型)

此方法用于确定查询是否返回非空结果。

modify() 方法( xml 数据类型)

此方法用于指定 XML DML 语句以执行更新。

nodes() 方法( xml 数据类型)

此方法用于将 XML 拆分成多行以将 XML 文档的组成部分传播到行集中。

CREATE TABLE VisioXML

(

ID INT,

Doc XML

);

GO

INSERT INTO VisioXML(ID,Doc)

SELECT 4,* from OPENROWSET(BULK 'c:\abc.xml',SINGLE_BLOB) AS x;

--SELECT * from VisioXML WHERE ID=4

SELECT

--Doc.value('(/ROOT/ROW[1]/ID/text())[1]','int') RootRowID1, -- 第一行 ID 的值,并且转换为 int 类型

--Doc.value('(/ROOT/ROW[2]/ID/text())[1]','int') RootRowID2, -- 第二行 ID 的值,并且转换为 int 类型

--Doc.value('(/ROOT/ROW[1]/NAME/text())[1]','varchar(20)') RootRowNAME1, -- 第一行 NAME 的值,并且转换为 VARCHAR 类型

--Doc.value('(/ROOT/ROW[1]/NAME/@SEX)[1]','varchar(20)') RootRowNAME1SEX, -- 第一行 NAME 中 SEX 属性的值,并且转换为 VARCHAR 类型

Doc.query('/ROOT') Root, --ROOT 下的所有 XML 内容,类型为 XML

--Doc.query('/ROOT/ROW[1]') RootRow1, --ROOT 下第一行所有的 XML 内容,类型为 XML

Doc.query('/ROOT/ROW[2]') RootRow2 --ROOT 下第二行所有的 XML 内容,类型为 XML

from VisioXML

WHERE ID=4

SELECT

Doc.exist('/ROOT/ROW[1]/NAME[(@SEX cast as xs:string?) = xs:string("MALE")]') Row1EQStringMale,

Doc.exist('/ROOT/ROW[1]/NAME[(@SEX cast as xs:string?) = "MALE"]') Row1EQ

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值