欢迎来到天天文库
浏览记录
ID:6077227
大小:293.00 KB
页数:20页
时间:2018-01-02
《xml在sql server 2008中的应用》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、XML在SQLSERVER2008中的应用一、XML简单介绍àxml与html的区别:HTML用于显示数据XML用于传输和存储数据à一个简单的XML文档:--根节点WelcometoXML!1、文档第一行声明该文档是一个xml文档,声明了版本(version)和编码方式(encoding)。2、为根节点,xml数据类型在sql应用中可以省略。3、2、ssage>标签名或元素名,一般成对出现。当元素内容为空时,可以只有单标签。例如:4、WelcometoXML!元素或标签message的内容。àxml中的替代符字符<、’、”、>及&是xml的保留字符,xml为区分这些字符,使用内嵌的替代符来标示这些保留字符。如下表:替代符含义例子解析器解释结果⁢<3⁢53<5>>5>35>3&&A&BA&B'‘I'mI’m"“"no"“no”xml数据类型在sq3、l应用中的限制请注意以下适用于xml数据类型的一般限制:§xml数据类型实例所占据的存储空间大小不能超过2GB。§不能用作sql_variant实例的子类型。§不支持转换或转换为text或ntext。请改用varchar(max)或nvarchar(max)。§不能进行比较或排序。这意味着xml数据类型不能用在GROUPBY语句中。20§不能用作除ISNULL、COALESCE和DATALENGTH之外的任何内置标量函数的参数。§不能用作索引中的键列。但可以作为数据包含在聚集索引中;如果创建了非聚集索引,也可以使用INCLUDE关键4、字显式添加到该非聚集索引中。二、Xml数据类型à定义xml类型变量declare@xmlxmlset@xml=''select@xmlà创建包含xml类型的列createtableTb_xml(idint,[xml]xml)insertintoTb_xmlselect1,''三、将XML文档转换为行结果集àOPENXML()函数OPENXML是一个行级提供程序类似于数据表和视图。OPEN5、XML能够提供内存中xml文档上的行级,是其能够像访问数据库中的数据表一样访问xml数据。openxml语法结构:OPENXML(idocint[in],rowpatternnvarchar[in],[flagsbyte[in]])[WITH(SchemaDeclaration6、TableName)]§idocxml文档内部表式形式的文档句柄,通过xml系统存储过程获取。§rowpatternXpath路径选择的标准,用来标识要作为行处理的节点。§flages指示应在XML数据和关系行集间使用映射以及应如何填充溢出列。有如下四种取值7、(该参数为可先输入参数):取值说明0默认为”以属性为中心”的映射1使用“以属性为中心”的映射。可以与XML_ELEMENTS一起使用。这种情况下,首先应用“以属性为中心”的映射,然后对所有未处理的列应用“以元素为中心”的映射。2使用“以元素为中心”的映射。可以与XML_ATTRIBUTES一起使用。这种情况下,首先应用“以属性为中心”的映射,然后对所有未处理的列应用“以元素为中心”的映射。8可与XML_ATTRIBUTES或XML_ELEMENTS组合使用(逻辑或)。在检索的上下文中,该标志指示不应将已使用的数据复制到溢出属性@mp8、:xmltext。20其实SQLServer2008内部是根据第三个参数的二进制比特位上的值来确定查询的方式的。最后2位是00或01(比如:0、1、4、5等)就是以属性为中心进行查询,最后2位是10(比如:2、6、10等)就是以元素为中心的查询,而最后2位是11(比如:3、7等)就表示既要查询属性也要查询元素。注:如果想要查询出的数据一部分在元素的属性中,一部分在元素的子元素中那么我们可以将该参数换成3.如下示例:示例A:declare@mydocxml--定义xml类型变量获取xml文档数据set@mydoc=' 9、 'declare
2、ssage>标签名或元素名,一般成对出现。当元素内容为空时,可以只有单标签。例如:4、WelcometoXML!元素或标签message的内容。àxml中的替代符字符<、’、”、>及&是xml的保留字符,xml为区分这些字符,使用内嵌的替代符来标示这些保留字符。如下表:替代符含义例子解析器解释结果⁢<3⁢53<5>>5>35>3&&A&BA&B'‘I'mI’m"“"no"“no”xml数据类型在sq
3、l应用中的限制请注意以下适用于xml数据类型的一般限制:§xml数据类型实例所占据的存储空间大小不能超过2GB。§不能用作sql_variant实例的子类型。§不支持转换或转换为text或ntext。请改用varchar(max)或nvarchar(max)。§不能进行比较或排序。这意味着xml数据类型不能用在GROUPBY语句中。20§不能用作除ISNULL、COALESCE和DATALENGTH之外的任何内置标量函数的参数。§不能用作索引中的键列。但可以作为数据包含在聚集索引中;如果创建了非聚集索引,也可以使用INCLUDE关键
4、字显式添加到该非聚集索引中。二、Xml数据类型à定义xml类型变量declare@xmlxmlset@xml=''select@xmlà创建包含xml类型的列createtableTb_xml(idint,[xml]xml)insertintoTb_xmlselect1,''三、将XML文档转换为行结果集àOPENXML()函数OPENXML是一个行级提供程序类似于数据表和视图。OPEN
5、XML能够提供内存中xml文档上的行级,是其能够像访问数据库中的数据表一样访问xml数据。openxml语法结构:OPENXML(idocint[in],rowpatternnvarchar[in],[flagsbyte[in]])[WITH(SchemaDeclaration
6、TableName)]§idocxml文档内部表式形式的文档句柄,通过xml系统存储过程获取。§rowpatternXpath路径选择的标准,用来标识要作为行处理的节点。§flages指示应在XML数据和关系行集间使用映射以及应如何填充溢出列。有如下四种取值
7、(该参数为可先输入参数):取值说明0默认为”以属性为中心”的映射1使用“以属性为中心”的映射。可以与XML_ELEMENTS一起使用。这种情况下,首先应用“以属性为中心”的映射,然后对所有未处理的列应用“以元素为中心”的映射。2使用“以元素为中心”的映射。可以与XML_ATTRIBUTES一起使用。这种情况下,首先应用“以属性为中心”的映射,然后对所有未处理的列应用“以元素为中心”的映射。8可与XML_ATTRIBUTES或XML_ELEMENTS组合使用(逻辑或)。在检索的上下文中,该标志指示不应将已使用的数据复制到溢出属性@mp
8、:xmltext。20其实SQLServer2008内部是根据第三个参数的二进制比特位上的值来确定查询的方式的。最后2位是00或01(比如:0、1、4、5等)就是以属性为中心进行查询,最后2位是10(比如:2、6、10等)就是以元素为中心的查询,而最后2位是11(比如:3、7等)就表示既要查询属性也要查询元素。注:如果想要查询出的数据一部分在元素的属性中,一部分在元素的子元素中那么我们可以将该参数换成3.如下示例:示例A:declare@mydocxml--定义xml类型变量获取xml文档数据set@mydoc='
9、 'declare
此文档下载收益归作者所有