SQL Server’da For XML Explicit
Herkese merhaba,
Bu yazıda SQL Server’da For XML Explicit kullanımından bahsedeceğim.
SQL Server’da For XML Explicit ifadesi XML çıktısı almak için kullanılır. For XML Explicit ifadesi Tag ve Parent ifadeleri ile kullanılan bir ifadedir. İlk olarak kullanıldığında biraz kafanız karışacak gibi ama hemen pes etmeyin. Nasıl kullanıldığını anlamaya başladığınız zaman gerçekten çok işe yaradığını göreceksiniz. Örnek kullanımını Northwind veritabanını kullanarak inceleyelim.
SELECT 1 AS Tag,
NULL AS Parent,
e.EmployeeID AS [Employee!1!EmployeeId],
e.LastName AS [Employee!1!LastName],
NULL AS [EmployeeTerritories!2!TerritoryID]
FROM dbo.Employees e
UNION ALL
SELECT 2 AS Tag,
1 AS Parent,
et.EmployeeID AS [Employee!1!EmployeeId],
NULL AS [Employee!1!LastName],
et.TerritoryID AS [EmployeeTerritories!2!TerritoryID]
FROM dbo.EmployeeTerritories et
ORDER BY [Employee!1!EmployeeId],
Parent
FOR XML EXPLICIT;
Yukarıdaki sorguyu çalıştırınca aşağıdakine benzer bir sonuç göreceksiniz.
Burada Employee!1!EmployeeId şeklinde yapılar görmektesiniz. Görmüş olduğunuz bu yapılar içindeki 1 ve 2 gibi sayıları Tag ve Parent ifadelerinin karşısındaki numaralara karşılık gelir. Ayrıca Employee!1!EmployeeId ifadesinde EmployeeId ifadesi veritabanındaki tablo ifadesi ile aynı yazılmalıdır.
İlk select sorgusunda e.EmployeeID AS [Employee!1!EmployeeId] yapısındaki 1 -> Tag’a karşılık gelir.
İkinci select sorgusunda ise et.EmployeeID AS [Employee!1!EmployeeId] yapısındaki 1-> Parent’a karşılık gelir. 2 ise Tag’a karşılık gelir.
Biraz kurcalarsanız yapıyı daha iyi anlayacaksınız.
Herkese çalışma hayatında ve yaşamında başarılar kolaylıklar.