﻿<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>TSQL Recursive Menü &#8211; SQL Server Eğitimleri</title>
	<atom:link href="https://sqlserveregitimleri.com/etiket/tsql-recursive-menu/feed" rel="self" type="application/rss+xml" />
	<link>https://sqlserveregitimleri.com</link>
	<description>SQL Server ile ilgili her şey</description>
	<lastBuildDate>Thu, 11 May 2023 18:21:24 +0000</lastBuildDate>
	<language>tr</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.7.1</generator>
	<item>
		<title>SQL Server&#8217;da Recursive Menü Oluşturmak</title>
		<link>https://sqlserveregitimleri.com/sql-serverda-recursive-menu-olusturmak</link>
		
		<dc:creator><![CDATA[Yavuz Selim Kart]]></dc:creator>
		<pubDate>Thu, 11 May 2023 18:21:04 +0000</pubDate>
				<category><![CDATA[SQL Server]]></category>
		<category><![CDATA[SQL Recursive Menü]]></category>
		<category><![CDATA[SQL Server Recursive Menü]]></category>
		<category><![CDATA[TSQL Recursive Menü]]></category>
		<guid isPermaLink="false">https://sqlserveregitimleri.com/?p=16268</guid>

					<description><![CDATA[Herkese merhaba. Bu yazıda SQL Server&#8217;da Recursive Menü oluşturmak ile ilgili bilgi vermeye çalışacağım. SQL Server&#8217;da menü basit ya da gelişmiş şekilde iç içe menüler...]]></description>
										<content:encoded><![CDATA[<p>Herkese merhaba. Bu yazıda SQL Server&#8217;da Recursive Menü oluşturmak ile ilgili bilgi vermeye çalışacağım.</p>
<p>SQL Server&#8217;da menü basit ya da gelişmiş şekilde iç içe menüler oluşturabilirsiniz.</p>
<p>Öncelikle, &#8220;Menu&#8221; adında bir tablo oluşturalım.</p>
<pre class="line-numbers"><code class="language-sql">CREATE TABLE Menu (
	MenuID INT PRIMARY KEY
   ,MenuName NVARCHAR(50)
   ,ParentMenuID INT NULL
   ,FOREIGN KEY (ParentMenuID) REFERENCES Menu (MenuID)
);</code></pre>
<p>Daha sonra, tabloya en az 10 adet menü ve alt menü içeriği ekleyelim.</p>
<pre class="line-numbers"><code class="language-sql">INSERT INTO Menu (MenuID, MenuName, ParentMenuID)
	VALUES (1, 'Ana Menü 1', NULL),
	(2, 'Ana Menü 2', NULL),
	(3, 'Alt Menü 1.1', 1),
	(4, 'Alt Menü 1.2', 1),
	(5, 'Alt Menü 1.3', 1),
	(6, 'Alt Menü 2.1', 2),
	(7, 'Alt Menü 2.2', 2),
	(8, 'Alt Menü 2.3', 2),
	(9, 'Alt Menü 2.4', 2),
	(10, 'Alt Menü 2.5', 2);</code></pre>
<p>Bu örnekte, &#8220;MenuID&#8221; sütunu benzersiz bir menü kimliği olarak kullanılmıştır. &#8220;MenuName&#8221; sütunu, menü adını içerir. &#8220;ParentMenuID&#8221; sütunu ise bir alt menüyü ana menüye bağlamak için kullanılır. Alt menülerin &#8220;ParentMenuID&#8221; değeri, ilgili ana menünün &#8220;MenuID&#8221; değerine eşit olmalıdır. Ana menülerin &#8220;ParentMenuID&#8221; değeri NULL olarak ayarlanır.</p>
<p>SQL Server&#8217;da bir tabloda ana menülerin alt menülerle ilişkilendirilmesi için özyinelemeli bir sorgu kullanabiliriz.</p>
<p>Aşağıdaki örnek, ana menü ve alt menülerin ilişkilendirildiği bir tabloyu hiyerarşik olarak göstermektedir.</p>
<pre class="line-numbers"><code class="language-sql">WITH RecursiveMenu
AS
(SELECT
		MenuID
	   ,MenuName
	   ,ParentMenuID
	   ,MenuLevel = 0
	   ,MenuPath = CAST(MenuName AS NVARCHAR(MAX))
	FROM Menu
	WHERE ParentMenuID IS NULL

	UNION ALL

	SELECT
		m.MenuID
	   ,m.MenuName
	   ,m.ParentMenuID
	   ,MenuLevel = rm.MenuLevel + 1
	   ,MenuPath = CAST(rm.MenuPath + ' &gt; ' + m.MenuName AS NVARCHAR(MAX))
	FROM Menu AS m
	INNER JOIN RecursiveMenu AS rm
		ON m.ParentMenuID = rm.MenuID)
SELECT
	MenuID
   ,MenuName
   ,MenuLevel
   ,MenuPath
FROM RecursiveMenu
ORDER BY MenuPath;</code></pre>
<p>Yukarıdaki sorguyu çalıştırınca aşağıdakine benzer bir sonuç göreceksiniz.</p>
<p><img fetchpriority="high" decoding="async" class="size-full wp-image-16270" src="https://sqlserveregitimleri.com/wp-content/uploads/2023/05/sql-serverda-recursive-menu-olusturmak-1.jpg" alt="SQL Server'da Recursive Menü Oluşturmak" width="700" height="450" srcset="https://sqlserveregitimleri.com/wp-content/uploads/2023/05/sql-serverda-recursive-menu-olusturmak-1.jpg 700w, https://sqlserveregitimleri.com/wp-content/uploads/2023/05/sql-serverda-recursive-menu-olusturmak-1-467x300.jpg 467w, https://sqlserveregitimleri.com/wp-content/uploads/2023/05/sql-serverda-recursive-menu-olusturmak-1-315x203.jpg 315w, https://sqlserveregitimleri.com/wp-content/uploads/2023/05/sql-serverda-recursive-menu-olusturmak-1-210x135.jpg 210w" sizes="(max-width: 700px) 100vw, 700px" /></p>
<p>Görüldüğü üzere basit şekilde Recursive menü oluşturmuş olduk.</p>
<p>Herkese çalışma hayatında ve yaşamında başarılar kolaylıklar.</p>
<div class='epvc-post-count'><span class='epvc-eye'></span>  <span class="epvc-count"> 246</span><span class='epvc-label'> Kez Okundu</span></div>]]></content:encoded>
					
		
		
			</item>
	</channel>
</rss>
