select  TABLE1.*,TABLE2.*,TABLE3.*
 from  TABLE1,TABLE2,TABLE3
 FOR XML auto, ELEMENTS XSINIL
生成的XML文档TABLE3为TABLE2的子元素,TABLE2为TABLE1的子元素,
各位大虾有什么办法生成的XML文档让TABLE2和TABLE3平级都为TABLE1的子元素?

解决方案 »

  1.   

    http://community.csdn.net/Expert/topic/5548/5548082.xml?temp=.1923792
      

  2.   

    table2和table3先做查询, 再出结果
      

  3.   

    SELECT 
    table_name = O.name,
    C.col_name,
    C.type_name
    FROM dbo.sysobjects O,
    (
    SELECT 
    C.id, 
    col_name = C.name, 
    type_name = T.name
    FROM dbo.syscolumns C, dbo.systypes T
    WHERE C.xusertype = T.xusertype
    )C
    WHERE O.id = C.id
    ORDER BY O.name, C.col_name
    FOR XML AUTO, ELEMENTS XSINIL
      

  4.   

    结果类似这样:<O xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
      <table_name>MSdistributor_access</table_name>
      <C>
        <col_name>agent_id</col_name>
        <type_name>int</type_name>
      </C>
      <C>
        <col_name>agent_type</col_name>
        <type_name>int</type_name>
      </C>
      <C>
        <col_name>db_id</col_name>
        <type_name>int</type_name>
      </C>
      <C>
        <col_name>login_time</col_name>
        <type_name>datetime</type_name>
      </C>
      <C>
        <col_name>publication_id</col_name>
        <type_name>int</type_name>
      </C>
      <C>
        <col_name>spid</col_name>
        <type_name>int</type_name>
      </C>
    </O>
      

  5.   

    sql 2000 对于子查询的 xml 处理似乎略有不同.不知道楼主用的什么版本, sql 2005 对xml的支持较为完善, 基本上你想要什么样格式的 xml 都可以做得到. 2000 会差一些, 有些样式无法用 for xml 生成