- 1、本文档共12页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
SQL Server2005的XML数据类型之基础篇 时间:2009-6-2 10:49:42 作者: 来源: ? 一、引言
如今,在sql server 2005中,xml成为第一流的数据类型。借助于基于xml模式的强类型化支持和基于服务器端的xml数据校验功能,现在
,开发者可以对存储的xml文档进行轻松地远程修改。作为数据库开发者,许多人都必须大量地涉及xml。
如今,在sql server 2005中,你能以一种新的数据类型的形式把xml存储在数据库中。
事实上,在sql server 2000中就已经包括了一些xml特征。其中,最关键的特征是使用for xml语句以xml形式返回结果。sql server 2005
的功能则明显不同。在sql server 2005中,xml是一种真正的数据类型;这意味着,你可以使用xml作为表和视图中的列,xml可以用于t-sql语
句中或作为存储过程的参数。现在,你可以直接在数据库中存储、查询和管理xml文件。
更重要的是,现在你还能规定你的xml必须遵从的模式。
在sql server 2005中,除了提供机制以校验你的数据库中的xml类型之外,它还允许你描述要被存储的复杂数据类型并且提供一个引擎来
强制施加这些规则。
二、使用xml数据类型
其实,xml数据类型与sql server中的其它数据类型并不存在根本的区别。你可以把它用在使用任何普通sql数据类型的地方。例如,下列
语句创建一个xml变量并用一个xml填充它:
declare @doc xml
select @doc = <team name=braves />
另外,你还可以使用一个查询和sql server的for xml语法来填充一个xml变量:
select @doc =
(select * from person.contact for xml auto)
xml数据类型不仅可以作为变量使用,也可以应用于表列中。你还能分配缺省值并且支持not null约束:
以下为引用的内容:
create table team (teamid int identity not null,teamdoc xml default <team /> not null)?
注意:sql server 2005的xml功能与sql server 2000中具有明显的不同。
把xml数据插入到表格中只需要用字符串形式的xml指定即可。
下列示例插入一组记录:
以下为引用的内容:
insert into team (teamdoc)values (<team name=braves><players><pitcher name=john smoltz role=closer/></players></team>);insert into team (teamdoc)values (<team name=red sox><players><pitcher name=petro martinez role=starter/></players></team>);
当在sql server 2005中创建xml的实例时,唯一的转换是从一个字符串转换成一个xml类型。同样,沿着相反的方向,你只可以把xml类型
转换成一个字符串类型。在text和ntext类型之间转换是不允许的。
三、xml数据类型的限制
尽管在sql server 2005中xml数据类型就象许多其它数据类型一样对待,但是还存在一些如何使用它的具体限制。这些限制是:
· xml类型不能转换成text或ntext数据类型。
· 除了string类型,没有其它数据类型能够转换成xml。
· xml列不能应用于group by语句中。
· 分布式局部(partitioned)视图不能包含xml数据类型。
· sql_variant实例的使用不能把xml作为一种子类型。
· xml列不能成为主键或外键的一部分。
· xml列不能指定为唯一的。
· collate子句不能被使用在xml列上。
· xml列不能加入到规则中。
· 唯一可应用于xml列的内置标量函数是isnull和coalesce。没有任何其它内置标量函数支持使用xml类型。
· 表中最多只能拥有32个xml列。
· 具有xml列的表不能有一个超过15列的主键。
· 具有xml列的表不能有一个timestamp数据类型作为它们的主键的一部分。
· 存储在数据库中的xml仅支持128级的层次。
四、xml类型方法
到此为止,上面的示例已经展示了xml数据类型仅能用作一种blob类型数据,但是这正是xml数据类型显示其自身力量的地方。xml数据类型
支持使用udt点(my
文档评论(0)