技术开发 频道

在SQL Server中如何与XML交互

ITPUB 技术文档】XML可以说是数据库表现的一种灵活的形式,在数据库开发过程中,很多时候我们都会需要涉及到XML,特别是用在数据交换。而在SQL Server 2005中,XML已成为一种流行的数据类型,XML已经做为一种新型的类型存储在数据库中。借助于基于XML模式的强类型化支持和基于服务器端的XML数据校验功能,开发者就可以对存储的XML文档进行轻松地远程修改。

   在SQL Server 2000中就已经包括了一些XML特征。最常用的是使用FOR XML语句以XML形式返回结果。SQL Server 2005的功能则明显不同。在SQL Server 2005中,XML是一种真正的数据类型;这意味着,可以使用XML作为表和视图中的列,XML可以用于T-SQL语句中或作为存储过程的参数。可以直接在数据库中存储、查询和管理XML文件。

在SQL Server中,主要有以下几种操作XML的方式:

1) FOR XML语句的使用

   FOR XML语句在使用的时候有三种模式,参数分别为:RAW、AUTO和EXPLICIT。

   先来分别看这几种模式:

RAW模式:

   RAW 模式将查询结果集中的每一行转换为带有通用标识符 或可能提供元素名称的XML元素。默认情况下,行集中非 NULL 的每列值都将映射为 元素的一个属性。如果将 ELEMENTS 指令添加到 FOR XML 子句,则每个列值都将映射到 元素的子元素。

   先来看RAW的实现的方式:

   创建一个表:
 

CREATE TABLE [dbo].[Tb_User](
[ID] [int] IDENTITY(1,1) NOT NULL,
[user_name] [varchar](20) NULL,
[user_Pwd] [varchar](20) NULL,
CONSTRAINT [PK_User] PRIMARY KEY CLUSTERED
(
[ID] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]


   语句一: 
 

SELECT ID, User_Name, User_pwd FROM Tb_User FOR XML RAW

 
   输出的结果如下:
 

<row ID="1" User_Name="admin" User_pwd="admin888" />
<row ID="2" User_Name="user" User_pwd="user" />

 
   语句二: 
 

SELECT ID, User_Name, User_pwd FROM Tb_User FOR XML RAW, ELEMENTS

 

0
相关文章