Anasayfa / Yazılım / SQL / FOR XML AUTO Kullanımı

FOR XML AUTO Kullanımı

FOR XML modlarından bir diğeri AUTO modudur. Bu mod tıpkı RAW gibi kullanımı basittir ancak daha karmaşık yapıda SXML dokümanları oluşturmamızı sağlar. Bu modda SELECT deyimini kullanabiliyoruz. Bu modda oluşturulan sorguda SELECT deyimi ile belirtilmiş her bir tablo için verinin çekildiği tablodan bir element oluşturulur. SELECT deyimi ile belirtilen her bir kolon element olarak eklenir.

FOR XML AUTO kullanımına ilişkin ilk örneğimizin kodlarını yazalım. AdventureWorks2012 veri tabanı üzerinde işlem yapıyorum.

SELECT CustomerID, LastName, FirstName, MiddleName
FROM Person.Person AS Kisi
INNER JOIN Sales.Customer AS Musteri ON Kisi.BusinessEntityID = Musteri.PersonID
FOR XML AUTO;

Sonuç:

2014031204

Linke tıkladığımızda aşağıdaki gibi bir sonuç alırız.


  


  


  


  


  


  

....
....
....

Görüleği üzere Customer ve Person tablosundaki verileri XML elementleri haline dönüştürdük. Yani bir tablo altındaki tüm kolonlar bizim XML dokümanımızda element olarak listenebiliyor. Listede görüldüğü gibi, Sales.Customer tablosundaki CustomerID attribute olarak Musteri adındaki elementimizin altında ve sorguya her eklenen kolon da XML dokümanında veri olarak listenebiliyor.

Şimdi üstteki aynı sorguyu ELEMENTS seçeneği ile tekrar oluşturup sonucu görelim.

SELECT CustomerID, LastName, FirstName, MiddleName
FROM Person.Person AS Kisi
INNER JOIN Sales.Customer AS Musteri ON Kisi.BusinessEntityID = Musteri.PersonID
FOR XML AUTO, ELEMENTS;

2014032501

Oluşan XML linkine tıkladığımızda elde ettiğimiz XML dokümanının içeriğini görebiliriz.


  29485
  
    Abel
    Catherine
    R.
  


  29486
  
    Abercrombie
    Kim
  


  29487
  
    Acevedo
    Humberto
  


  29484
  
    Achong
    Gustavo
  

...
...
...

Şeklinde devam eden bir doküman elde ederiz. Sorgumuzu bu modda kullandığımızda yani FOR XML RAW ile birlikte ELEMENTS seçeneğini kullandığımızda varsayılan attribute mapping yapısı yerine her kolonu bir element düğümü (node) şeklinde gösterir.

Bir Cevap Yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir