SQLSql ServerT-SQL

Sql Server Cursor Nedir ? Nasıl Kullanılır ?

Sql Server Cursor Nedir ? Nerelerde kullanılır ? Nasıl yazılır ?

Cursorlar Sql Server üzerinden belirli kayıtları üzerinden satır satır işlem yapılabilmesine olanak sağlamaktadır. Bir tablo düşünün bu tabloda her satır için ayrı ayrı işlem yapmanız gerekmekte ve her satırı ayrı ayrı kontrol etmeniz gerekir ise bu durumda cursorlar işinizi görecektir.

Bir update sorgusu yazdığınızı varsayalım bu update çalıştırıldığında tüm tabloda vereceğimiz şartlardaki verileri güncelleyecektir , Fakat her satırda şartlarımız farklı ise ne olacak ? bu durumda bir den fazla sorgu mu yazmak gerekecek bu durumda cursor ile satır satır okuma yaparak gerekli işlemler tamamlanır.

Yazım şeklinde satır satır gezilecek tablodaki veriler cursor değişkenlerine aktarılır ve her satır için aktarım sağlanır yazım şekli aşağıdaki gibidir :


DECLARE @Adi NVARCHAR(MAX), @Soyadi NVARCHAR(MAX)
  — Cursor tanımlandı ve hafızaya yazıldı
DECLARE Uyeler_Cursor CURSOR
FOR    
  — Cursorda satır satır okuma yapacağımız veri kümesi tanımlanıyor
SELECT Adi, Soyadi FROM Uyeler
  — OPEN komutu ile cursor açılıyor
OPEN Uyeler_Cursor
  — Sıradaki veri çekiliyor ve ilgili deişkene ataması yapılıyor
FETCH NEXT FROM Uyeler_Cursor INTO @Adi, @Soyadi
  — İşlem başarılı ise @@FETCH_STATUS değişken değeri ‘0’ ise işlem başarılıdır ve bir sonraki kayıt var demektir.
WHILE @@FETCH_STATUS = 0
  BEGIN

–İlgili verilerle işlemler , çalışmalar bu kısımda yapılmaktadır.

PRINT @Adi + ‘ ‘ + @Soyadi 

— Sıradaki veriye aktarım sağlanıyor.
    FETCH NEXT FROM Uyeler_Cursor INTO @Adi, @Soyadi, @Unvan  END
  — Cursor kapatılıyor.
CLOSE Uyeler_Cursor
  — Bellekten siliniyor. Eğer silinmez ise kaynak tüketimini gereksiz yere harcayacaktır.
DEALLOCATE Uyeler_Cursor


 

Paylaş

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir