Sql server Sql for xml:如何避免将特定字段作为属性输出?

Sql server Sql for xml:如何避免将特定字段作为属性输出?,sql-server,sql-server-2008-r2,for-xml,Sql Server,Sql Server 2008 R2,For Xml,这个问题的陈述点是 我希望输出从 <security AccessLevel="5" /> 我将使用别名中的@来生成xml中的属性。要获取accesslevel作为元素,只需在别名中添加@ 像这样的 SELECT NAME AS [@Name], Surname AS [@Surname], DateOfBirth AS [@DateOfBirth], DepartmentID AS [department/@D

这个问题的陈述点是

我希望输出从

<security AccessLevel="5" />

我将使用别名中的
@
来生成
xml
中的
属性。要获取
accesslevel
作为元素,只需在别名中添加
@

像这样的

SELECT NAME         AS [@Name],
       Surname      AS [@Surname],
       DateOfBirth  AS [@DateOfBirth],
       DepartmentID AS [department/@DepartmentID],
       AccessLevel  AS [department/security]
FROM   @Employees
FOR xml path('employee') 
结果:

<employee Name="John" Surname="Doe" DateOfBirth="1980-01-31">
  <department DepartmentID="100">
    <security>5</security>
  </department>
</employee>
<employee Name="Mary" Surname="Rose" DateOfBirth="1971-02-27">
  <department DepartmentID="102">
    <security>3</security>
  </department>
</employee>
<employee Name="Luke" Surname="Perry" DateOfBirth="1995-12-01">
  <department DepartmentID="104">
    <security>1</security>
  </department>
</employee>

5.
3.
1.

我会使用别名中的
@
来生成
xml中的
属性。要获取
accesslevel
作为元素,只需在别名中添加
@

像这样的

SELECT NAME         AS [@Name],
       Surname      AS [@Surname],
       DateOfBirth  AS [@DateOfBirth],
       DepartmentID AS [department/@DepartmentID],
       AccessLevel  AS [department/security]
FROM   @Employees
FOR xml path('employee') 
结果:

<employee Name="John" Surname="Doe" DateOfBirth="1980-01-31">
  <department DepartmentID="100">
    <security>5</security>
  </department>
</employee>
<employee Name="Mary" Surname="Rose" DateOfBirth="1971-02-27">
  <department DepartmentID="102">
    <security>3</security>
  </department>
</employee>
<employee Name="Luke" Surname="Perry" DateOfBirth="1995-12-01">
  <department DepartmentID="104">
    <security>1</security>
  </department>
</employee>

5.
3.
1.