Merhaba arkadaşlar bu makalemde sizlere Sql server’da Cursor kullanımı hakkında bilgi vereceğim. Cursor parametresi ile sql server içerisindeki kayıtlara tek tek ulaşabiliriz. Fakat büyük projelerde performans açısından çok yavaştır .Fakat işlerimizi yaparken başka bir alternatifimiz olmadığı durumlarda bu performansı göz önünde bulundurmuyoruz.
Şimdi Örneğimizde Customer Tablosu oluşturuyorum tablomuzun ekran görüntüsü aşağıda gösterilmiştir. Örneğimizde Cursor’e ihtiyacımız olmayabilir fakat sizlere anlatmak amaçlı bu örnekte inceliyoruz.

--Şimdi Örneğimizde ihtiyaç duyacağimiz değişkenleri oluşturuyoruz.
Declare @name nvarchar(50), @surname nvarchar(50),@id nvarchar(50)
--Cursor oluşturma işlemine geçelim.Cursor'muzun adını csr_sirala koyuyoruz.
Declare csr_sirala Cursor For
Select ID,Name,Surname from Customer order by Name
--Cursor Oluşturduk oluşturduğumuz cursor'ü açıyoruz.
Open csr_sirala
--Cursorde tablomuz barınıyor.Kayıtlar içerisinde ilerlemek için
Fetch Next -- diyerek ilerliyorur.
Fetch First -- ile satır başına dönüyoruz.
Fetch Last -- satır sonuna ilerliyoruz.
Fetch Next from csr_sirala Into @id,@name,@surname
--Bu işlemde bütün kayıtları dolaşabilmemiz için bir while dongusu tanımlıyoruz. FETCH komutunun durumunu ”@@FETCH_STATUS” tutar.FETCH_STATUS,” 0” olduğunda başarılı"-1” olduğunda başarısız “-2” olduğunda ise kayıt bulunamadığı anlamına gelir.
while @@FETCH_STATUS=0
Begin
Update Customer set NameSurname=@name+' '+@surname where ID=@id
fetch Next from csr_sirala Into @id,@name,@surname
End
--Execute ediyoruz sonuç olarak tablomuz aşagıda gösterilmiştir.

Bu makalemizinde sonuna geldik bir dahaki makalede görüşmek üzere.