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.

SQL Server'da For XML Explicit

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.

375 Kez Okundu

Yavuz Selim Kart

Yazılım ve veri tabanında bildiklerimi anlatmaya gayret ediyorum. Halen birçok programlama dili üzerinde araştırmalar yaparak kendimi geliştiriyorum. Bunlar haricinde Grafik Tasarım ve Wordpress konularına da ilgim bulunmakta. SEO ve Sosyal medya yönetimleri hakkında da bilgim mevcuttur. Kısaca çok çalışmayı seven azimli biriyim.

You may also like...

Yazı kopyalamak yasaktır!