SQL Server’da Cursor Kullanımı
Herkese merhaba,
Bu yazıda size SQL Server’da Cursor kullanımından bahsedeceğim.
Cursor’lar seçilen veritabanı üzerinde satır satır işlem yapmaya olanak sağlayan veritabanı nesneleridir. Kıcasa kayıtların üzerinde satır satır gezinebiliriz. Bu sayede istenilen satırlarda işlem yapmamıza olanak sağlamış olurlar.
Konu hakkında örneği Northwind veritabanını kullanarak inceleyelim.
--Kod içinde kullanılan değişken tanımlanır. DECLARE @KategoriAd NVARCHAR(100) --Cursor tanımlanır DECLARE Cursorumuz CURSOR FOR SELECT CategoryName FROM dbo.Categories --Cursor kullanım için açılır OPEN Cursorumuz --Satırlarda cursorumuzun ilerleme kısmı FETCH NEXT FROM Cursorumuz --İlerleyen kategoriadları @KategoriAd değişkenine atanır INTO @KategoriAd --While komutuyla kayıtlarda dolaşma imkanı buluruz. Eğer FETCH_STATUS 0 ise kayıt başarılı, -1 ise kayıt başarısız, -2 ise kayıt bulunamadığını gösterir. WHILE @@FETCH_STATUS = 0 --Begin ve end başla bitir kısımlarıdır. BEGIN --Bu kısımda satır satır alınan kayıtlarla istenilen işlem yapılabilir. Yani işlem yapılma kısmı burası SELECT CategoryName FROM dbo.Categories WHERE CategoryName = @KategoriAd FETCH NEXT FROM Cursorumuz INTO @KategoriAd END --İşlem yapılan datayı serbest bırakır. Tablo üstündeki kilit işlemini kaldırır. CLOSE Cursorumuz --Cursorumuzu yok eder DEALLOCATE Cursorumuz
Kodu çalıştırdığımız zaman satır satır kategoriler üzerinde dönerek kategori adlarını bize verecektir. Her satır üzerinde hangi kısım ne işe yarıyor açıklamaya çalıştım.
Herkese çalışma hayatında ve yaşamında başarılar kolaylıklar.