`
pzmayf
  • 浏览: 145655 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

对SQL Server 2005中XML操作函数的理解

阅读更多

首先要明确一个基本原则,XML类型的数据之间以及XML类型与其它数据类型之间都是不能比较的,也就是说XML类型的数据不能出现在等号的任何一边。
大致可分为查询类,修改类和跨域查询类。

查询类包含query(),value(),exist()和nodes().
修改类包含modify().
跨域查询类包含sql:variable()和sql:column().

一.查询类
1.query()方法,返回满足条件的所有XML行.只能用于SELECT子句当中.
2.value()方法,返回从XML节点中提取的标量值,必须在value()方法的第二个参数中指定所返回的标量的数据类型,
所以value()方法可以与其它标量进行比较.可用于SELECT子句和WHERE子句.
3.exist()方法,返回int型标量的0或者1.对每行的XML数据类型进行存在性检查.可用于SELECT子句和WHERE子句.
4.nodes()方法,返回只有一个栏位的table,且该table的栏位是XML数据类型.所以nodes()方法只能出现在FROM子句中.

1.query()
SELECT pk, xCol.query('/doc[@id = 123]//section')
FROM docs

2.value()
SELECT xCol.value('data((/doc//section[@num = 3]/heading)[1])', 'nvarchar(max)')
FROM docs

3.exist()
SELECT xCol.query('/doc[@id = 123]//section')
FROM   docs
WHERE  xCol.exist ('/doc[@id = 123]') = 1

4.nodes()
SELECT nref.value('@genre', 'varchar(max)') LastName
FROM   docs CROSS APPLY xCol.nodes('//book') AS R(nref)

二.修改类
5.modify()方法,允许修改XML实例的某些部分,例如添加或删除子树,或者更新标量值(如将书的价格从9.99替换为39.99).
无返回值,只能用于SET子句中.

--在指定位置添加子树('insert...after...')
UPDATE docs SET xCol.modify('
  insert
   <section num="2">
         <heading>Background</heading>
</section>               
  after (/doc/section[@num=1])[1]')

--更改指定节点中的标量值('replace...with...')
UPDATE XmlCatalog
SET    Document.modify ('
    default namespace = "http://myBooks"
    replace value of (/bookstore/book[@ISBN=
"1-8610-0311-0"]/price)[1] with 49.99')

三.跨域查询类
如果数据驻留在关系数据类型的列和XML数据类型的列的组合中,就可能需要编写查询来组合关系数据处理和XML数据处理(组合的对象还可以是标量数据类型的SQL变量和XML数据),
这样的查询就叫跨域查询.
1.sql:variable()方法,可以在XQuery或XML DML表达式中应用SQL变量的值.
2.sql:column()方法,可以在XQuery或XML DML表达式中使用来自关系列的值.

1.sql:variable()
DECLARE @isbn varchar(20)
SET     @isbn = '0-7356-1588-2'
SELECT  xCol
FROM    docs
WHERE   xCol.exist ('/book[@ISBN = sql:variable("@isbn")]') = 1

 

本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/pzmayf/archive/2007/12/13/1932660.aspx

分享到:
评论

相关推荐

    SQL Server中读取XML文件的简单做法

    在SQL Server中,读取XML文件并对其进行处理是数据库...在SQL Server的后续版本中,如SQL Server 2005及更高版本,处理XML的功能得到了显著增强,例如引入了XML数据类型和更强大的XML方法,使得XML操作更加简便高效。

    XML操作函数详解-SQL Server 2005

    XML操作在SQL Server 2005中是一个重要的功能,它允许数据库管理员和开发者对存储在数据库中的XML数据进行查询、修改和分析。在SQL Server 2005中,XML字段的操作主要涉及以下几个核心函数: 1. **query()** 方法:...

    SQL SERVER 2005 操作 XML

    4. **内置XML函数**:SQL Server 2005提供了丰富的内置XML函数,如`value()`、`exist()`、`query()`和`nodes()`等,这些函数使用户能够方便地操作XML文档。`value()`用于提取XML节点的值,`exist()`检查XML文档是否...

    Microsoft SQL Server 2005 向后兼容组件SQLServer2005_BC.msi

    8. **XML支持**:SQL Server 2005对XML进行了增强,支持XML数据类型,可以将XML直接存储在数据库中,并提供了XML索引和XML函数。 9. **Service Broker**:是SQL Server的异步消息处理系统,用于在数据库之间或...

    SQL Server 2005中XML存取原理剖析.pdf

    为了深入理解SQL Server 2005中XML数据存取的原理,我们需要具体分析以下几个方面: 首先,要了解SQL Server 2005为XML数据类型提供的本地支持。这包括XML数据类型在数据库中的表现形式、存储方式以及如何被SQL ...

    SQLServer20052008 XML数据类型操作

    根据给定的文件标题、描述、标签以及部分内容,本文将详细介绍如何在SQL Server 2005 和 2008 中操作XML数据类型,并简要介绍与之相关的C# XML操作方法。 ### 一、SQL Server 2005/2008 XML 数据类型操作 #### 1. ...

    sqlserver2005的base64加密解密函数

    在SQL Server 2005中,没有内置的Base64加密函数。但我们可以自定义T-SQL存储过程来实现这个功能。以下是一个简单的Base64编码的示例: ```sql CREATE FUNCTION [dbo].[Base64Encode](@input NVARCHAR(MAX)) ...

    SQL Server 2005对XML的支持分析报告.pdf

    SQL Server 2005提供了丰富的内置函数和方法来处理XML数据,如SELECT语句中的FOR XML子句用于生成XML格式的结果集,而XML方法如.value()、.exist()和.modify()则用于读取、验证和修改XML数据。这些功能使得在SQL ...

    SQLServer的内置XML支持

    在SQLServer中,可以将XQuery表达式嵌入到T-SQL语句中,实现对XML数据的复杂查询和操作。 五、XML和关系数据的互操作性 SQLServer提供了无缝的方式来在XML和关系数据之间进行转换。例如,你可以将关系表中的数据...

    SQL Server 2005 XML专业编程

    SQL Server 2005引入了一套新的XML函数,如SELECT INTO、OPENXML、FOR XML等,这些函数使得在SQL查询中处理XML变得直观和简单。读者将学习到如何利用这些函数来提取、修改和插入XML数据,以及如何构建复杂的XML查询...

    Microsoft SQL Server 2005 中的 XML 支持

    综上所述,Microsoft SQL Server 2005中的XML支持不仅提高了XML数据处理的效率,还增强了与.NET Framework V2.0和本机代码环境(如OLEDB和SQLXML)的集成,为开发人员提供了更全面的XML解决方案,推动了XML在企业级...

    Professional SQL Server 2005 XML

    综上所述,《Professional SQL Server 2005 XML》是一本全面介绍SQL Server 2005中XML功能的专业书籍。它不仅涵盖了从服务器端到客户端处理的所有方面,还深入探讨了.NET Framework和ADO.NET的新特性和增强功能。...

    SQL Server 2005与XML的紧密整合(下)

    在SQL Server 2005中,XML与数据库的整合是一个重要的里程碑,它极大地扩展了SQL Server的功能,使之成为处理结构化和半结构化数据的理想平台。本篇将深入探讨SQL Server 2005与XML的紧密整合,以及如何利用这一特性...

    Microsoft SQL Server 2005 中的 XML 选项

    结论上,理解SQL Server 2005中XML的不同选项及其用途对于开发高效、可靠的XML应用程序至关重要。开发者应根据实际需求,如性能、数据管理、集成深度等因素,谨慎选择合适的方法。此外,随着技术的不断演进,SQL ...

    SQL Server 2005对XML的增强支持.pdf

    下面是一个示例,展示了如何在SQL Server 2005中使用XML数据类型创建表,并插入XML文档实例。 ```sql CREATE DATABASE Demo; USE Demo; GO CREATE TABLE docs(pk INT PRIMARY KEY IDENTITY, xCol XML NOT NULL); ...

    Professional SQL Server 2005 XML代码

    《Professional SQL Server 2005 XML代码》是针对SQL Server 2005数据库管理系统中XML特性的深度解析和实践指南。XML(eXtensible Markup Language)在2005年版本的SQL Server中得到了显著提升,使得数据库与Web服务...

    SQL Server 2005 XML应用开发 光盘

    木书简要介绍了XML语言的编写与规范,重点介绍了SQL Server 2005中XML语言的应用,包括XML数据类型、XQuery语言、FOR XML子句、OPENXML函数、XML模板、updategram模板、XML Bulk Load数据批量处理以及XML Web服务等...

    关于SQL Server 2005中XML数据存储的研究.pdf

    在深入探讨SQL Server 2005中XML数据存储的研究之前,先了解一下XML和数据库的基本概念是很有帮助的。XML,全称为可扩展标记语言,是一种用于存储和传输数据的标记语言。它允许用户自定义标记来表示数据的结构,使得...

    Pro SQL Server 2008 XML 数据库

    其次,SQL Server 2008的XML函数和方法是处理XML数据的核心工具。例如,`FOR XML`子句用于将SQL查询结果转换为XML格式,而`OPENXML`函数则用于读取XML文档并将其转换为关系数据。此外,还有`XQuery`表达式,这是一种...

Global site tag (gtag.js) - Google Analytics