﻿<?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>Cursor Kullanmadan Tablo Üzerinde Gezinmek &#8211; SQL Server Eğitimleri</title>
	<atom:link href="https://sqlserveregitimleri.com/etiket/cursor-kullanmadan-tablo-uzerinde-gezinmek/feed" rel="self" type="application/rss+xml" />
	<link>https://sqlserveregitimleri.com</link>
	<description>SQL Server ile ilgili her şey</description>
	<lastBuildDate>Tue, 07 Mar 2023 17:01:30 +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 Cursor Kullanmadan Tablo Üzerinde Dolaşmak</title>
		<link>https://sqlserveregitimleri.com/sql-serverda-cursor-kullanmadan-tablo-uzerinde-dolasmak</link>
		
		<dc:creator><![CDATA[Yavuz Selim Kart]]></dc:creator>
		<pubDate>Sat, 13 Nov 2021 14:09:09 +0000</pubDate>
				<category><![CDATA[SQL Server]]></category>
		<category><![CDATA[Cursor Kullanmadan Tablo Üzerinde Gezinmek]]></category>
		<category><![CDATA[SQL Server While ve Cursor]]></category>
		<category><![CDATA[While Kullanımı]]></category>
		<guid isPermaLink="false">https://sqlserveregitimleri.com/?p=11722</guid>

					<description><![CDATA[Herkese merhaba, Bu yazıda SQL Server&#8217;da Cursor kullanmadan tablo üzerinde dolaşmak hakkında bilgi vereceğim. SQL Server&#8217;da tablo üzerinde dolaşmak için çoğu durumda çoğu kişi Cursor...]]></description>
										<content:encoded><![CDATA[<p>Herkese merhaba,</p>
<p>Bu yazıda SQL Server&#8217;da Cursor kullanmadan tablo üzerinde dolaşmak hakkında bilgi vereceğim.</p>
<p>SQL Server&#8217;da tablo üzerinde dolaşmak için çoğu durumda çoğu kişi Cursor kullanmayı tercih eder fakat bu oldukça maliyetli bir işlemdir.</p>
<p>Cursor kullanılması gereken yerlerde elbette Cursor kullanılır. Her yapılan işlemde Cursor kullanılması ise SQL Server&#8217;a ekstra yük bindirir.</p>
<p>Aşağıdaki örnekte Cursor kullanarak ve Cursor kullanmadan tablo üzerinde nasıl dolaşılır öğreneceksiniz.</p>
<p>Örnekleri Northwind veritabanını kullanarak yaptım.</p>
<p>İlk örneğimiz Cursor ile ilgili.</p>
<pre class="line-numbers"><code class="language-sql">DECLARE @ProductID INT;
DECLARE @ProductName NVARCHAR(50);

DECLARE Cur_Ornek CURSOR FAST_FORWARD FOR SELECT ProductID FROM Products;

OPEN Cur_Ornek;
FETCH NEXT FROM Cur_Ornek
INTO @ProductID;

WHILE @@FETCH_STATUS = 0
BEGIN
    SELECT @ProductName = ProductName
    FROM Products
    WHERE ProductID = @ProductID;

    PRINT 'Ürün Adı : ' + @ProductName;

    FETCH NEXT FROM Cur_Ornek
    INTO @ProductID;
END;

CLOSE Cur_Ornek;
DEALLOCATE Cur_Ornek;
GO</code></pre>
<p>Yukarıdaki sorguyu çalıştırınca aşağıdaki sonucu göreceksiniz.</p>
<p><img fetchpriority="high" decoding="async" class="alignnone wp-image-11724 size-full" src="https://sqlserveregitimleri.com/wp-content/uploads/2021/11/sql-serverda-cursor-kullanmadan-tablo-uzerinde-dolasmak-1.jpg" alt="SQL Server'da Cursor Kullanmadan Tablo Üzerinde Dolaşmak" width="700" height="489" srcset="https://sqlserveregitimleri.com/wp-content/uploads/2021/11/sql-serverda-cursor-kullanmadan-tablo-uzerinde-dolasmak-1.jpg 700w, https://sqlserveregitimleri.com/wp-content/uploads/2021/11/sql-serverda-cursor-kullanmadan-tablo-uzerinde-dolasmak-1-315x220.jpg 315w, https://sqlserveregitimleri.com/wp-content/uploads/2021/11/sql-serverda-cursor-kullanmadan-tablo-uzerinde-dolasmak-1-429x300.jpg 429w, https://sqlserveregitimleri.com/wp-content/uploads/2021/11/sql-serverda-cursor-kullanmadan-tablo-uzerinde-dolasmak-1-193x135.jpg 193w" sizes="(max-width: 700px) 100vw, 700px" /></p>
<p>İkinci örneğimiz While döngüsü ile ilgili.</p>
<pre class="line-numbers"><code class="language-sql">DECLARE @KayitSayisi INT;
DECLARE @ProductID INT = 1;
DECLARE @ProductName NVARCHAR(50);

SELECT @KayitSayisi = COUNT(*)
FROM dbo.Products;

WHILE @ProductID &lt;= @KayitSayisi
BEGIN
    SELECT @ProductName = ProductName
    FROM dbo.Products
    WHERE ProductID = @ProductID;
    PRINT 'Ürün Adı : ' + @ProductName;
    SET @ProductID += 1;
END;
GO</code></pre>
<p>Yukarıdaki sorguyu çalıştırınca aşağıdaki sonucu göreceksiniz.</p>
<p><img decoding="async" class="alignnone wp-image-11725 size-full" src="https://sqlserveregitimleri.com/wp-content/uploads/2021/11/sql-serverda-cursor-kullanmadan-tablo-uzerinde-dolasmak-2.jpg" alt="SQL Server'da Cursor Kullanmadan Tablo Üzerinde Dolaşmak" width="700" height="560" srcset="https://sqlserveregitimleri.com/wp-content/uploads/2021/11/sql-serverda-cursor-kullanmadan-tablo-uzerinde-dolasmak-2.jpg 700w, https://sqlserveregitimleri.com/wp-content/uploads/2021/11/sql-serverda-cursor-kullanmadan-tablo-uzerinde-dolasmak-2-315x252.jpg 315w, https://sqlserveregitimleri.com/wp-content/uploads/2021/11/sql-serverda-cursor-kullanmadan-tablo-uzerinde-dolasmak-2-375x300.jpg 375w, https://sqlserveregitimleri.com/wp-content/uploads/2021/11/sql-serverda-cursor-kullanmadan-tablo-uzerinde-dolasmak-2-169x135.jpg 169w" sizes="(max-width: 700px) 100vw, 700px" /></p>
<p>Görüldüğü üzere Cursor kullanmadan da tablo üzerinde dolaşabilirsiniz. Cursor&#8217;a göre sorgusu daha kısa. Ayrıca While döngüsünün işlemi tamamlaması Cursor&#8217;a göre daha hızlıdır.</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"> 462</span><span class='epvc-label'> Kez Okundu</span></div>]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>SQL Server’da Cursor Kullanmadan Tablo Üzerinde Gezinmek</title>
		<link>https://sqlserveregitimleri.com/sql-serverda-cursor-kullanmadan-tablo-uzerinde-gezinmek</link>
		
		<dc:creator><![CDATA[Yavuz Selim Kart]]></dc:creator>
		<pubDate>Mon, 25 May 2020 10:47:24 +0000</pubDate>
				<category><![CDATA[SQL Server]]></category>
		<category><![CDATA[Cursor Kullanmadan Tablo Üzerinde Gezinmek]]></category>
		<category><![CDATA[sql server'da cursor kullanmamak]]></category>
		<category><![CDATA[SQL Server’da Cursor Kullanmadan Tablo Üzerinde Gezinmek]]></category>
		<guid isPermaLink="false">https://sqlserveregitimleri.com/?p=9928</guid>

					<description><![CDATA[Herkese merhaba, Bu yazıda SQL Server&#8217;da cursor kullanmadan tablo üzerinde gezinmek hakkında bilgi vereceğim. SQL Server&#8217;da birçoğunuz büyük ihtimal cursor kullanmıştır. Kullanmayanlarda üzülmesinler artık birçok...]]></description>
										<content:encoded><![CDATA[<p>Herkese merhaba,</p>
<p>Bu yazıda SQL Server&#8217;da cursor kullanmadan tablo üzerinde gezinmek hakkında bilgi vereceğim.</p>
<p>SQL Server&#8217;da birçoğunuz büyük ihtimal cursor kullanmıştır. Kullanmayanlarda üzülmesinler artık birçok insan gerekmedikçe cursor kullanmıyor ama siz yine de nasıl kullanıldığını öğrenin.</p>
<p>Konuyu yazma sebebim bu tarz işlemlerin cursor kullanılmadan nasıl yapılabileceği hakkında bilgi sahibi olmanız. Ayrıca bu yöntem cursor kullanmaya göre daha verimli bir yöntemdir ki büyük çaplı işlemlerde bunu hissedersiniz.</p>
<p>İşlemi yaparken basit bir tablo oluşturdum ve tablo üzerinde gezinirken <strong>PRINT</strong> kullanarak seçtiğim bir kolonu yazdırdım. Siz güncelleme ya da silme işlemlerinde de kullanabilirsiniz.</p>
<p>Aşağıdaki kodu kendinize göre düzenleyerek istediğiniz işlemleri rahatlıkla yapabilirsiniz.</p>
<pre class="line-numbers"><code class="language-sql">--Tablo oluşturmak

CREATE TABLE AdSoyadTablosu (
	Id INT PRIMARY KEY IDENTITY (1, 1)
   ,AdSoyadi NVARCHAR(30)
)

--Tabloya veri eklenmesi

INSERT INTO AdSoyadTablosu (AdSoyadi)
	VALUES (N'Yavuz Selim Kart'), (N'Hasan Ali Kart'), (N'Bilge Nuray Kart')

--Tablonun kontrol edilmesi

SELECT
	*
FROM AdSoyadTablosu

--Cursor kullanmadan tablo üzerinde dolaşmak
--Sondan başa

DECLARE @Sayac INT;
DECLARE @AdSoyad NVARCHAR(30);
SELECT
	@Sayac = COUNT(*)
FROM AdSoyadTablosu;
WHILE @Sayac &gt; 0
BEGIN
SELECT
	@AdSoyad = AdSoyadi
FROM AdSoyadTablosu
WHERE Id = @Sayac;

PRINT @AdSoyad;
SET @Sayac = @Sayac - 1;
END;

--Cursor kullanmadan tablo üzerinde dolaşmak
--Baştan sona

DECLARE @BaslangicSayisi INT = 1
DECLARE @Sayac INT;
DECLARE @AdSoyad NVARCHAR(30);
SELECT
	@Sayac = COUNT(*)
FROM AdSoyadTablosu;
WHILE @Sayac &gt;= @BaslangicSayisi
BEGIN
SELECT
	@AdSoyad = AdSoyadi
FROM AdSoyadTablosu
WHERE Id = @BaslangicSayisi;

PRINT @AdSoyad;
SET @BaslangicSayisi = @BaslangicSayisi + 1;
END;</code></pre>
<p>Yukarıda cursor kullanmadan tablo üzerinde dolaşmak kısmını hem sondan hem de baştan başlayacak şekilde yazdım. Hangisini isterseniz kullanabilirsiniz.</p>
<p>Tabloyu oluşturup kodları çalıştırdığınızda aşağıdaki gibi bir sonuç göreceksiniz.</p>
<p><img decoding="async" class="alignnone wp-image-9930 size-full" src="https://sqlserveregitimleri.com/wp-content/uploads/2020/05/sql-serverda-cursor-kullanmadan-tablo-uzerinde-gezinmek-1.jpg" alt="SQL Server’da Cursor Kullanmadan Tablo Üzerinde Gezinmek" width="700" height="334" srcset="https://sqlserveregitimleri.com/wp-content/uploads/2020/05/sql-serverda-cursor-kullanmadan-tablo-uzerinde-gezinmek-1.jpg 700w, https://sqlserveregitimleri.com/wp-content/uploads/2020/05/sql-serverda-cursor-kullanmadan-tablo-uzerinde-gezinmek-1-315x150.jpg 315w, https://sqlserveregitimleri.com/wp-content/uploads/2020/05/sql-serverda-cursor-kullanmadan-tablo-uzerinde-gezinmek-1-629x300.jpg 629w, https://sqlserveregitimleri.com/wp-content/uploads/2020/05/sql-serverda-cursor-kullanmadan-tablo-uzerinde-gezinmek-1-283x135.jpg 283w" sizes="(max-width: 700px) 100vw, 700px" /></p>
<p>Görüldüğü üzere tablo üzerinde dolaşılıp AdSoyad kolonu yazılmış oldu.</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"> 439</span><span class='epvc-label'> Kez Okundu</span></div>]]></content:encoded>
					
		
		
			</item>
	</channel>
</rss>
