SQL Server XML基础学习<2>之--FOR XML AUTO/RAW
来源:互联网 发布:mac imovie教程 编辑:程序博客网 时间:2024/05/16 16:24
本文主要介绍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
- FOR XML (AUTO,RAW)
- SQL查询 FOR XML [RAW|AUTO|EXPLICIT]
- SQL查询 FOR XML [RAW|AUTO|EXPLICIT]
- SQL查询 FOR XML [RAW|AUTO|EXPLICIT]
- SQL Server XML基础学习<1>之--FOR XML PATH
- SQL Server XML基础学习<3>之--FOR XML EXPLICIT
- SQL Server XML(For Xml Path、Raw/Auto、explicit、XPah、Xquery xml查询.value(),exists(),nodes())
- SQL SERVER中XML查询:FOR XML指定RAW
- SQL SERVER中XML查询:FOR XML指定RAW
- SQl 2005 For XMl 简单查询(Raw,Auto,Path模式)(2)
- SQl 2005 For XMl 简单查询(Raw,Auto,Path模式)(2)
- SQL SERVER中XML查询:FOR XML指定AUTO
- SQL SERVER中XML查询:FOR XML指定AUTO
- SQL SERVER中XML查询:FOR XML指定AUTO
- SQL Server SQL for xml auto 添加根节点
- SQl 2005 For XMl 简单查询(Raw,Auto,Path模式)(1)
- SQl 2005 For XMl 简单查询(Raw,Auto,Path模式)(1)
- cocos2d-x使用CCUserDefault问题
- Log4j使用总结
- Caused by: java.sql.SQLException: The user specified as a definer ('mail'@'%
- Android UI管理系统
- Java中接口和抽象类有什么区别
- SQL Server XML基础学习<2>之--FOR XML AUTO/RAW
- Android 记录和恢复ListView滚动的位置的三种方法
- VBS学习2 + 如何在运行命令行工具后让命令窗口保持打开状态?
- Extjs4学习资料(TreeStore使用)
- redirect与forward区别
- C++ swap宏
- js刷新页面方法大全
- hdu1498 50 years, 50 colors
- 笔记-2003-A Maximum Entropy Chinese Character-Based Parser