SQL Server2005 新数据类型XML

在SQL Server2005中继续延续了微软在.Net中的设计思想 将XML和.Net紧密地结合到其中.用.Net在Sql2005中写存储过程定义函数我还没有研究过,今天就只简单得谈谈XML在SQL2005中的应用.

相对SQLServer2000而言,2005在数据类型上最大的一点改变就是增加了XML这个数据类型.要把这个东西搞懂先就必须要懂XML.

在数据库中xml的定义和使用和一般的数据类型没有多大差别,比如:

  • 创建表: create table xmltable(id int primary key,xml1 xml)
  • 定义变量:declare @x xml

与一般的数据类型不同的是,xml下面直接提供了方法,可以对其中的数据进行操作.用到的方法有:

query('Query') 方法 返回xml 此方法用于对 XML 实例进行查询。

假设表xmlTest中有XML一字段xml1='<book id="1"><bookname>AJAX in Action</bookname> <price>10</price></book>' 那么执行

declare @xml1 xml;
select @xml1=xml1
from xmlTest
select @xml1.query('/book/bookname')

这个时候就可以查询到其下面BookName的xml值<bookname>AJAX in Action</bookname>

value('Query','type') 方法 返回具体类型 此方法用于从 XML 实例检索 SQL 类型的值。

比如执行:select @xml1.value('(/book/bookname)[1]','varchar(max)')

注意这里是[1]表示第一个数据,不是[0],返回结果:AJAX in Action

exist('Query') 方法 返回布尔值 此方法用于确定查询是否返回非空结果。

比如执行:select @xml1.exist('/book/id') 返回0,这里是查询/book/id,无法找到<book id="1">中的ID.

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

比如执行:set @xml1.modify('insert <Author>Unknown</Author> after (/book/price)[1] ');
select @xml1这样就可以往原xml数据中插入一个属性,当然运行结果是:

<book id="1"><bookname>AJAX in Action</bookname><price>10</price><Author>Unknown</Author></book>
这里需要注意的是set和select不要混用.
nodes() 方法 此方法用于将 XML 拆分成多行以将 XML 文档的组成部分传播到行集中。

时间: 2024-07-28 23:48:10

SQL Server2005 新数据类型XML的相关文章

SQL Server2005杂谈(3):四个排名函数(row_number、rank、dense_rank和ntile)的比较

本文为原创,如需转载,请注明作者和出处,谢谢! 上一篇:SQL Server2005杂谈(2):公用表表达式(CTE)的递归调用     排名函数是SQL Server2005新加的功能.在SQL Server2005中有如下四个排名函数: 1. row_number 2. rank 3. dense_rank 4. ntile        下面分别介绍一下这四个排名函数的功能及用法.在介绍之前假设有一个t_table表,表结构与表中的数据如图1所示: 图1 其中field1字段的类型是int

SQL Server2005的XML数据类型之基础篇

一.引言 如今,在SQL Server 2005中,XML成为第一流的数据类型.借助于基于XML模式的强类型化支持和基于服务器端的XML数据校验功能,现在 ,开发者可以对存储的XML文档进行轻松地远程修改.作为数据库开发者,许多人都必须大量地涉及XML. 如今,在SQL Server 2005中,你能以一种新的数据类型的形式把XML存储在数据库中. 事实上,在SQL Server 2000中就已经包括了一些XML特征.其中,最关键的特征是使用FOR XML语句以XML形式返回结果.SQL Ser

SQL Server2005打开数据表中的XML内容时报错的解决办法_mssql2005

从SQL Server2005开始提供了一种新的数据类型XML type,它允许用户将数据以XML文件的格式直接存储到数据表中.结合在ASP.NET中使用Linq to Sql,我们可以非常方便地将XML文件存储到SQL Server数据库中.但是在默认情况下,如果你存储的XML文件比较大(超过2MB),在SQL Server管理器中不能直接点击查看XML内容而报以下错误提示: 如何解决该问题呢?很简单,其实错误提示中已经描述地很清楚了,在SQL Server Management Studio

SQL Server 2008 对XML 数据类型操作

原文 http://www.cnblogs.com/qinjian123/p/3240702.html 一.前言 从 SQL Server 2005 开始,就增加了 xml 字段类型,也就是说可以直接把 xml 内容存储在该字段中,并且 SQL Server 会把它当作 xml 来对待,而不是当作 varchar 来对待. 随着SQL Server 对XML字段的支持,相应的,T-SQL语句也提供了大量对XML操作的功能来配合SQL Server中XML字段的使用.本文主要说明如何使用SQL语句

SQL Server 2005的XML支持与异常处理

本文给出了类型化和非类型化XML列各自的优势.将SQL Server 2000数据库迁移到SQL Server2005,新的异常处理如何工作:如果表的架构发生更改,我如何执行操作等,供大家参考! SQL Server 2005 包括对Transact-SQL (T-SQL) 语言的几项重要改进.新增功能之一是一种新的触发器,它在数据定义语言 (DDL) 语句运行时激发.在跟踪或保护数据库对象的创建和修改,或对数据库服务器进行更改时,DDL 触发器非常有用.另一个新功能涉及异常处理,该功能因包含T

[转载]利用SQL SERVER2005发送邮件

原文:http://sqlserver2005.itpub.net/post/22359/210413 早在sql server 2000中可以通过sql mail给指定的邮件地址发邮件.SQL SERVER 2005中我们仍外可以用sql server2000中的SQLMAIl功能 发送邮件,但SQL SERVER2005中又提供一个新数据库邮件功能也可以发送和接收邮件.这里以数据库邮件为例进行说明. 为了安全起见,微软将数据中的一些可能带来安全隐患的一些功能组件禁用掉了,数据库邮件和SQL

SQL Server 2008数据类型

在创建表时,必须为表中的每列指派一种数据类型.本节将介绍SQL Server中最常用的一些数据类型.即使创建自定义数据类型,它也必须基于一种标准的SQL Server数据类型.例如,可以使用如下语法创建一种自定义数据类型(Address),但要注意,它基于SQL Server标准的varchar数据类型. CREATE TYPE Address   FROM varchar(35) NOT NULL  如果在SQL Server Management Studio的表设计界面中更改一个大型表中某

使用Microsoft SQL Server 2000的XML查询

server|xml 由于XML本身的诸多优点,XML技术已被广泛的使用,目前的好多软件技术同XML紧密相关,比如微软的.net 平台对xml提供了强大的支持,提供System.Xml以及其子命名空间下的类型来操作xml.Ado.net通过核心类型DataSet出色的把关系型数据库同xml进行了紧密集成.由于平常许多开发人员使用.net 来操作Sql server的到数据集后再转换成xml,所以往往忽略Transact-SQL查询生成XML数据的强大功能.对于一些项目使用XML查询直接通过SQL

深入探讨SQL Server 2000对XML的支持

server|xml  [作者简介:]Wayne,新一代程序员,十二岁时开始学习编程,十三岁时拥有自己的电脑,先后学过Basic.Pascal.C.FOXPRO.VB.DELPHI.C++.SQL,学习Java语言后,遂成为Java的疯狂崇拜者,现就读于中国科技大学. 引言 内容导航  * 引言 * 配置SQL Server 2000的IIS虚拟目录 * 使用 HTTP 执行 SQL 语句 * 使用XML模板进行查询 * XPath查询 架构和模板   我们可以很简单的使用ADO访问数据库中的数