代码之家  ›  专栏  ›  技术社区  ›  Rick

对同义词使用FOR XML AUTO

  •  0
  • Rick  · 技术社区  · 14 年前

    例如,这就是我们过去能够做到的:

    select top 3 number from Numbers as elementname for xml auto
    
    <elementname number="0"/><elementname number="1"/><elementname number="2"/>
    

    同义词就是这样的:

    select top 3 number from Numbers_synonym as elementname for xml auto 
    
    <dbo.Numbers number="0"/><dbo.Numbers number="1"/><dbo.Numbers number="2"/>
    

    如您所见,SQLServer似乎使用实际引用对象的名称而不是别名。对于跨服务器查询来说,情况更糟,因为您得到的是由四部分组成的名称,而不是漂亮的别名(如: <rick_server.rick_database.dbo.Numbers number="0"/> ...)

    1 回复  |  直到 14 年前
        1
  •  1
  •   Rowland Shaw    14 年前

    FOR XML AUTO 做了“错误的事情”-如果使用稍微详细一点的:

    SELECT TOP 3 number
    FROM Numbers_synonym
    FOR XML PATH('elementname'), TYPE