DEV Community

Hakan Yalitekin
Hakan Yalitekin

Posted on • Originally published at hakanyalitekin.wordpress.com on

SQL Cursor Kullanımı

Merhaba, başlıktan da anlaşılacağı üzere bugün SQL’de çok sık olmasa da ara ara kullandığımız cursor yapısından bahsedeceğim. Cursor yapısı alında macro recorder ya da for yapılarına benzetilebilir. Tanımı biraz daha kısaltacak olursak; cursor : verilen veriler arasında satır satır dönerek işlem yapılmasına olanak sağlayan yapıdır.

Öncelikle çıktı sonucunu görebilmek adına Id, AdSoyad ve Departman-dan oluşan basit bir veritabanı oluşturalım. Daha sonra aşağıda ki kodu SSMS’te çalıştırıp sonuçları başarılı bir şekilde alabildiysek kod içerisinde ki yorum satırlarını inceleyerek meseleyi kavramaya çalışalım.


DECLARE @crs_AdSoyad NVARCHAR(MAX), @crs_Departman NVARCHAR(MAX) -- Kullanacağımız parametreleri tanımlıyoruz.

    DECLARE crs_Kullanici CURSOR FOR

    SELECT AdSoyad,Departman FROM Kullanicilar -- Cursur de işlenecek veriler ve listeyi select sorgusu ile çekiyoruz .

    OPEN crs_Kullanici -- Cursor ü açıyoruz

    FETCH NEXT FROM crs_Kullanici INTO @crs_AdSoyad, @crs_Departman -- Select sorgusunda gelen sütunlar sırasına göre değişkenlere atanır Örn : @crs_AdSoyad = @AdiSoyadi

    WHILE @@FETCH_STATUS =0
        BEGIN

            PRINT @crs_AdSoyad + ' => ' + @crs_Departman
            --SELECT , INSERT , UPDATE İŞLEMLERİ YAPILABİLİR

            FETCH NEXT FROM crs_Kullanici INTO @crs_AdSoyad, @crs_Departman

        END

    CLOSE crs_Kullanici -- Cursor ü kapatıyoruz.

    DEALLOCATE crs_Kullanici -- Cursor ile işimiz bittiğinde sistemden tamizlememiz için DEALLOCATE etmemiz gerekmektedir.


Enter fullscreen mode Exit fullscreen mode

Top comments (0)