转载---SQL Server XML基础学习<2>之--FOR XML AUTO/RAW
本文主要介绍FOR XML 的 AUTO 模式和 RAW 模式
--AUTO 模式将查询结果以嵌套 XML 元素的方式返回。这不能较好地控制从查询结果生成的 XML 的形式。
--如果要生成简单的层次结构,AUTO 模式查询很有用。
--但是,使用 EXPLICIT 模式和使用 PATH 模式在确定从查询结果生成的 XML 的形式方面可提供更好的控制和更大的灵活性。
--> 测试数据:#tb
IF OBJECT_ID('TEMPDB.DBO.#tb') IS NOT NULL
DROP TABLE #tb
GO
CREATE TABLE #tb
(
[id] INT IDENTITY PRIMARY KEY ,
[name] VARCHAR(4),
[type] VARCHAR(10)
)
INSERT #tb
SELECT '彪' , '流氓'
UNION ALL
SELECT '阿紫' , '流氓'
UNION ALL
SELECT '小强' , '流氓'
UNION ALL
SELECT '光辉' , '臭流氓'
UNION ALL
SELECT '小D' , '臭流氓'
UNION ALL
SELECT '野子' , '臭流氓'
--------------开始查询--------------------------
SELECT * FROM #tb FOR XML AUTO
/*
<_x0023_tb id="1" name="彪" type="流氓" />
<_x0023_tb id="2" name="阿紫" type="流氓" />
<_x0023_tb id="3" name="小强" type="流氓" />
<_x0023_tb id="4" name="光辉" type="臭流氓" />
<_x0023_tb id="5" name="小D" type="臭流氓" />
<_x0023_tb id="6" name="野子" type="臭流氓" />
*/
--ELEMENTS 选项,将返回以元素为中心的 XML。
SELECT * FROM #tb FOR XML AUTO,ELEMENTS
/*
<_x0023_tb>
<id>1</id>
<name>彪</name>
<type>流氓</type>
</_x0023_tb>
<_x0023_tb>
<id>2</id>
<name>阿紫</name>
<type>流氓</type>
</_x0023_tb>
<_x0023_tb>
<id>3</id>
<name>小强</name>
<type>流氓</type>
</_x0023_tb>
<_x0023_tb>
<id>4</id>
<name>光辉</name>
<type>臭流氓</type>
</_x0023_tb>
<_x0023_tb>
<id>5</id>
<name>小D</name>
<type>臭流氓</type>
</_x0023_tb>
<_x0023_tb>
<id>6</id>
<name>野子</name>
<type>臭流氓</type>
</_x0023_tb>
*/
=
--RAW 模式将查询结果集中的每一行转换为带有通用标识符 <row> 或可能提供元素名称的 XML 元素。
--默认情况下,行集中非 NULL 的每列值都将映射为 <row> 元素的一个属性。
--如果将 ELEMENTS 指令添加到 FOR XML 子句,则每个列值都将映射到 <row> 元素的子元素。
--指定 ELEMENTS 指令之后,您还可以选择性地指定 XSINIL 选项以将结果集中的 NULL 列值映射到具有 xsi:nil="true" 属性的元素。
SELECT * FROM #tb FOR XML RAW
/*
<row id="1" name="彪" type="流氓" />
<row id="2" name="阿紫" type="流氓" />
<row id="3" name="小强" type="流氓" />
<row id="4" name="光辉" type="臭流氓" />
<row id="5" name="小D" type="臭流氓" />
<row id="6" name="野子" type="臭流氓" />
*/
--使用 XMLDATA 和 XMLSCHEMA 选项作为结果请求架构
SELECT * FROM #tb FOR XML RAW, XMLDATA ;
--检索二进制数据
DECLARE @a VARBINARY(10)=0x78786F6F
SELECT @a AS 'VARBINARY' FOR XML RAW,BINARY BASE64
--结果为base64 编码的二进制数据
/*
XML_F52E2B61-18A1-11d1-B105-00805F49916B
<row VARBINARY="eHhvbw=="/>
*/
--对于结果集中的每一行,RAW 模式都生成一个元素 <row>。
--您可以通过向 RAW 模式指定一个可选参数为该元素指定另一个名称,如该查询中所示。
SELECT * FROM #tb FOR XML RAW('流氓们')
--AUTO 模式和 RAW 模式都可以使用 ROOT , ELEMENTS XSINIL, TYPE 指令,这里就不一一列举了
转载---SQL Server XML基础学习<2>之--FOR XML AUTO/RAW的更多相关文章
- 转载---SQL Server XML基础学习<3>之--FOR XML EXPLICIT
--使用 RAW 和 AUTO 模式不能很好地控制从查询结果生成的 XML 的形状.--但是,对于要从查询结果生成 XML,EXPLICIT 模式会提供非常好的灵活性. --必须以特定的方式编写 EX ...
- 转载---SQL Server XML基础学习<1>之--FOR XML PATH
--> 测试数据:#tbIF OBJECT_ID('TEMPDB.DBO.#tb') IS NOT NULL DROP TABLE #tbGO CREATE TABLE #tb ...
- sql server 数据库基础学习心得 思维导图
- XML基础学习02<linq to xml>
Linq to XML的理解 1:这是一种比较好的操作Xml的工具. àXDocument 文档 àXElement 元素 àXAttribute 属性 àXText 文本 2:这里还是和我们之前创建 ...
- C#面试题(转载) SQL Server 数据库基础笔记分享(下) SQL Server 数据库基础笔记分享(上) Asp.Net MVC4中的全局过滤器 C#语法——泛型的多种应用
C#面试题(转载) 原文地址:100道C#面试题(.net开发人员必备) https://blog.csdn.net/u013519551/article/details/51220841 1. . ...
- mysql与sql server参照对比学习mysql
mysql与sql server参照对比学习mysql 关键词:mysql语法.mysql基础 转自桦仔系列:http://www.cnblogs.com/lyhabc/p/3691555.html ...
- cmd常用命令 和 sql server相关基础
在Java开发中 ms sql server 接触算是比较少的,本文记录一些ms sql server的基础知识. 1. 为表字段增加索引:create index user_openid on us ...
- Sql Server数据库基础
--------------------------------------第一章 Sql Server数据库基础------------------------------------------ ...
- 第一篇——第一文 SQL Server 备份基础
原文:第一篇--第一文 SQL Server 备份基础 当看这篇文章之前,请先给你的所有重要的库做一次完整数据库备份.下面正式开始备份还原的旅程. 原文出处: http://blog.csdn.net ...
随机推荐
- 使用Spring MVC 的表单控制器SimpleFormController
以注册过程为例,我们可能会选择继承AbstractController来实现表单的显示,继承AbstractCommandController来实现表单的处理 ,这样是可行的,但必须要维护两个控制器 ...
- 【HTML】Advanced3:Tables: Columns, Headers, and Footers
1. <table> <colgroup> <col> <col class="alternative"> <col> ...
- Esper系列(十)NamedWindow语法delete、Select+Delete、Update
On-Delete With Named Windows 功能:在Named Windows中删除事件. 格式: 1 , 4 field_b = win.field_a, 5 field_ ...
- ERROR hdfs.DFSClient: Failed to close file解决方法
14/04/11 17:59:44 ERROR hdfs.DFSClient: Failed to close file /wlan_out/_temporary/_attempt_local_000 ...
- Apple LLVM 6.0 Warning: profile data may be out of date
I have no clue what this meant, so I googled the problem. I only ended up with some search results s ...
- Topology拓扑
- 成都Uber优步司机奖励政策(2月21日)
滴快车单单2.5倍,注册地址:http://www.udache.com/ 如何注册Uber司机(全国版最新最详细注册流程)/月入2万/不用抢单:http://www.cnblogs.com/mfry ...
- 关于arm处理器 内存编址模式 与 字节对齐方式 (转)
转自:http://bavon.bokee.com/5429805.html 在x86+Linux上写的程序,在PC机上运行得很好.可是使用ARM的gcc进行交叉编译,再送到DaVinci目标板上运行 ...
- Win+R指令(1)
CMD命令:开始->运行->键入cmd或command(在命令行里可以看到系统版本.文件系统版本)1. appwiz.cpl:程序和功能 2. calc:启动计算器 3. certmgr. ...
- C#- 压缩和解压缩的研究 .
用了第二种方法,感觉很不错,其他都没用过了.摘录下来,做一个备忘. 最近在网上查了一下在.net中进行压缩和解压缩的方法,方法有很多,我找到了以下几种: 1.利用.net自带的压缩和解压缩方法GZip ...