首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > 其他数据库 >

微软认证考试70-461 Work with Data 数据处理 -27%比重-(5.4)

2013-02-19 
微软认证考试70-461 Work with Data 数据处理 --27%比重--(5.4)附注:微软认证考试70-461范围Create Databa

微软认证考试70-461 Work with Data 数据处理 --27%比重--(5.4)

附注:微软认证考试70-461范围

    Create Database Objects创建数据库对象 (24%)Work with Data数据处理 (27%)Modify Data数据修改 (24%)Troubleshoot & OptimizeFOR XML 模式可以是 RAW、AUTO、EXPLICIT 或 PATH。它确定产生的 XML 的形状。基本语法:

    [ FOR { BROWSE | <XML> } ]
    <XML> ::=
    XML 
        { 
          { RAW [ ('ElementName') ] | AUTO } 
            [ 
               <CommonDirectives> 
               [ , { XMLDATA | XMLSCHEMA [ ('TargetNameSpaceURI') ]} ] 
               [ , ELEMENTS [ XSINIL | ABSENT ] 
            ]
          | EXPLICIT 
            [ 
               <CommonDirectives> 
               [ , XMLDATA ] 
            ]
          | PATH [ ('ElementName') ] 
            [ 
               <CommonDirectives> 
               [ , ELEMENTS [ XSINIL | ABSENT ] ]
            ]
         } 
     
     <CommonDirectives> ::= 
       [ , BINARY BASE64 ]
       [ , TYPE ]
       [ , ROOT [ ('RootName') ] ]

    FOX XML指定PATHPATH参数PATH('参数'),参数是用来重命名ROW的,ROW是默认生成的名称。select 'Hui' for xml path  结果:<row>Hui</row>
    select 'Hui' for xml path ('root') 结果:<root>Hui</root>
    不带名称的列select 'Hui Li' for xml path
    结果:<row>Hui Li</row>
    具有名称的列列名以 @ 符号开头select 'Hui Li' as [@name] for xml path  结果:<row name="Hui Li" />
    列名不以 @ 符号开头select 'Hui Li' as [name] for xml path  结果:
    <row>
      <name>Hui Li</name>
    </row>
    列名不以 @ 符号开头并包含斜杠标记 (/)select 'Hui' as [name/first] for xml path  结果:
    <row>
      <name>
        <first>Hui</first>
      </name>
    </row>
    多个列共享同一前缀select 'Hui' as [name/first],'Li' as [name/last] for xml path  结果:
    <row>
      <name>
        <first>Hui</first>
        <last>Li</last>
      </name>
    </row>注意大小写敏感。
    共享同一前缀多列被打断顺序select 'Hui' as [name/first],'Chicago' as [address],'Li' as [name/last] for xml path  结果:
    <row>
      <name>
        <first>Hui</first>
      </name>
      <address>Chicago</address>
      <name>
        <last>Li</last>
      </name>
    </row>
    称指定为通配符的列select 'Hui' as [*],' ' as [*], 'Li' as [*] for xml path
    select 'Hui',' ', 'Li' for xml path
    上面两个SQL语句执行结果相同:<row>Hui Li</row>
    如果是XML类型,则作为一个子元素插入XML树。declare @table table(name varchar(50), xmlcontent xml)
    insert into @table select 'Hui', '<root><person></person></root>'
    select name,xmlcontent as [*] from @table for xml path
    结果:<row>
      <name>Hui</name>
      <root>
        <person />
      </root>
    </row>
    列名为 XPath 节点测试的列

    列名

    行为

    text()

    对于名为 text() 的列,该列中的字符串值将被添加为文本节点。

    comment()

    对于名为 comment() 的列,该列中的字符串值将被添加为 XML 注释。

    node()

    对于名为 node() 的列,结果与列名为通配符 (*) 时相同。

    处理指令(名称)

    如果列名为处理指令,该列中的字符串值将被添加为此处理指令目标名称的 PI 值。

    示例:select 'Hui' as [first/text()],'Li' as [last/node()],'Hui Li' as [fullname/comment()],'test' as "processing-instruction(PI)" for xml path结果:<row>
      <first>Hui</first>
      <last>Li</last>
      <fullname>
        <!--Hui Li-->
      </fullname>
      <?PI test?>
    </row>带有指定为 data() 的路径的列名如果被指定为列名的路径为 data(),则在生成的 XML 中,该值将被作为一个原子值来处理。如果序列化中的下一项也是一个原子值,则将向 XML 中添加一个空格字符。这在创建列表类型化元素值和属性值时很有用。
    with T
    as
    (
    select 11 as id
    union all
    select 22
    union all
    select 33
    )
    select id as [data()] from T for xml path ('')
    结果:11 22 33
    这里的('')可以理解为把XML的根元素名称设为空。NULL值列select 'hui' as [name],null as [address] for xml path
    结果:<row>
      <name>hui</name>
    </row>
    没有任何相关address的内容,指定ELEMENTS XSINIL后:select 'hui' as [name],null as [address] for xml path ,ELEMENTS XSINIL
    结果:<row xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
      <name>hui</name>
      <address xsi:nil="true" />
    </row>PATH 模式中的命名空间支持WITH XMLNAMESPACES(N'乐可乐可的部落格' as a)
    SELECT 1 as 'a:b'
    FOR XML PATH
    结果:<row xmlns:a="乐可乐可的部落格">
      <a:b>1</a:b>
    </row>

    参考:http://msdn.microsoft.com/zh-cn/library/ms189885.aspx
    后记:准备到这,去考了一次,竟然过了!后两大块内容占的还是不少的。
    第5.1部分

    第5.2部分

    第5.3部分

    第5.5部分


热点排行