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

FOR XML EXPLICIT Kullanımı

FOR XML kullanımının en karmaşık olduğu seçenek FOR XML EXPLICIT kullanımıdır. Ama karmaşıklığının yanı sıra sorgularımızda bize kontrol ve esneklik sağlayan da bir moddur. SELECT deyimi ile birlikte kullanılarak evrensel tablolar oluşturabiliriz.

Örneğin bir önceki yazımı inceler iseniz XML AUTO Kullanımı burada Musteri adında bir element ve bu elementin altında da Kisi adında bir alt element oluşturduk. XML dokümanlarda alt element olarak bahsettiğim element child olarak adlandırılır. EPXLICIT mod kullanarak benzer şekilde bir XML dokümanı oluşturabilmek için evrensel tablomuz üzerinde gerekli tanımlamalarımızı yapmamız gerekir. Bunu yapabilmek için TAG ve PARENT adında iki kolon oluştururuz. Örnekle konuya devam edelim. AdventureWorks2012 veritabanını kullanarak aşağıdaki şekilde sorgumu oluşturuyorum.

SELECT 1 AS Tag,
NULL AS Parent,
CustomerID AS [Customer!1!CustomerID],
NULL AS [Name!2!FName],
NULL AS [Name!2!LName]
FROM Sales.Customer AS C
INNER JOIN Person.Person AS P
ON P.BusinessEntityID = C.PersonID
UNION
SELECT 2 AS Tag,
1 AS Parent,
CustomerID,
FirstName,
LastName
FROM Person.Person P
INNER JOIN Sales.Customer AS C
ON P.BusinessEntityID = C.PersonID
ORDER BY [Customer!1!CustomerID], [Name!2!FName]
FOR XML EXPLICIT;

Sorgum sonucu sonuç:

2014032502

Sonucun bir kısmı aşağıdaki gibidir.


  


  


  


  


  


  


  


  


  


  


  

...
...
...

UNION deyimini kullanarak her SELECT deyiminde farklı PARENT ve TAG’lerde üretebiliriz. Böylelikle iç içe ve hiyerarşik şekilde elementlerden oluşan XML dokümanları elde edebiliriz.

Bir Cevap Yazın

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