T-SQL Cursor (İmleç) Kullanımı

T

Cursor, SQL Server’da dönen değerler içerisinde satır satır işlem yapmamıza olanak sağlar. Programlama dillerinde sıkça kullandığımız bu yapıyı veritabanında cursor sayesinde yapmaktayız. SELECT sorgusuyla aldığımız kayıtlar arasında WHILE döngüsü ile belirttiğimiz koşula göre satır satır verileri okuyabiliyoruz. Aşağıdaki örnekte açıklama satırlarıyla açıklanan bu işlemin nasıl yapıldığı görülebilir.

DECLARE @Isim NVarChar(Max), @Telefon NVarChar(Max) -- Cursor'da dönen ID değerini almak için değişken(ler) tanımlıyoruz

DECLARE CUR_REHBER CURSOR FOR -- Cursor'u tanımlıyoruz

	SELECT 'Ahmet', '123456789'
	UNION SELECT 'Ömer', '987654321'
	UNION SELECT 'Mehmet', '00112233' -- Cursor'da dönecek değerlerin sorgusunu yazıyoruz

	OPEN CUR_REHBER -- Cursor'u açıyoruz
	FETCH NEXT FROM CUR_REHBER INTO @Isim, @Telefon -- Cursor'daki dönen değerlerin değişkenlere atamasını yapıyoruz. Sütunlar sırasıyla değişkenlere aktarılır
	WHILE @@FETCH_STATUS = 0 BEGIN -- Fetch durumunu kontrol ediyoruz. 0 değeri bir önceki fetch işleminin başarılı olduğu anlamına gelmektedir ve bu kural, hata olmadığı sürece devam et anlamına gelmektedir.
		PRINT @Isim + ': ' + @Telefon; -- Değerleri yazdırıyoruz
		FETCH NEXT FROM CUR_REHBER INTO @Isim, @Telefon -- Bir sonraki kayda geçiyoruz
	END
CLOSE CUR_REHBER --Cursor'u kapatıyoruz
DEALLOCATE CUR_REHBER -- CLOSE ile Cursor'umuz kapanır ancak bellekte kalmaya devam eder. DEALLOCATE ile Cursor'u bellekten siliyoruz

Yorum ekle