Sqlserver
 sql >> Teknologi Basis Data >  >> RDS >> Sqlserver

UNTUK XML PATH dan atribut xsi:nil

Saya rasa tidak mungkin untuk mencegah perilaku ini dengan subkueri menggunakan for xml path . Ada masalah serupa yang dilaporkan di sini. https ://connect.microsoft.com/SQLServer/feedback/details/265956/suppress-namespace-attributes-in-nested-select-for-xml-statements

Anda bisa mendapatkan output yang Anda inginkan jika Anda menggunakan for xml explicit sebagai gantinya.

declare @T table(Level1 int, Level2 int)
insert into @T values(null, 2)

select 1    as Tag,
       null as Parent,
       null as [root!1],
       null as [nested1!2!level1!ELEMENTXSINIL],
       null as [nested1!2!level2!ELEMENTXSINIL],
       null as [nested2!3!level1!ELEMENTXSINIL],
       null as [nested2!3!level2!ELEMENTXSINIL]
union all
select 2    as Tag,
       1    as Parent,
       null,
       Level1,
       Level2,
       null,
       null
from @T       
union all
select 3    as Tag,
       1    as Parent,
       null,
       null,
       null,
       Level1,
       Level2
from @T       
for xml explicit       

Hasil:

<root xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <nested1>
    <level1 xsi:nil="true" />
    <level2>2</level2>
  </nested1>
  <nested2>
    <level1 xsi:nil="true" />
    <level2>2</level2>
  </nested2>
</root>



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. 11 praktik terbaik indeks SQL Server untuk penyetelan kinerja yang lebih baik

  2. Tentukan objek apa yang dibuat pengguna di SQL Server

  3. SQL Server Profiler - Bagaimana cara memfilter jejak untuk hanya menampilkan acara dari satu database?

  4. 4 Alasan Mengapa Anda Harus Memprioritaskan Pemantauan Database dalam Perencanaan 2020

  5. Apa itu Connect Timeout dalam string koneksi server sql?