T-Sql de Cursor Kullanımı

Transkript

T-Sql de Cursor Kullanımı
T-Sql de Cursor Kullanımı
Onur Tekin tarafından yazıldı.
Salı, 01 Aralık 2009 16:10 -
Sql den veri çekme işlemlerinde, kayıtların arasında dolaşmak, her zaman ihtiyaç duyulmayan
ancak bazı durumlarda hayati öneme sahip bir konudur. T-Sql de basit select işlemini kullanarak
kayıtların içerisinde dolaşmak mümkün değildir. Mesela son kayıda gitmek yada 3. kayıdı
döndürmek basit select işlemi ile mümkün değildir. Tabiki tüm kayıtları çektikten sonra kayıtları
for ile dolaşıp istediğiniz verilere ulaşabilirsiniz ancak bu hem zaman hem de performans
kaybına yol açar.
T-Sql de Cursor, kayıtların arasında dolaşmak için kullanılır. Aşağıda verdiğim örnekte basit bir
cursor ile nasıl kayıtlar arasında dolaşıldığını anlatacağım.
Örnek database:
9 Mekan1
7 Mekan2
100 Mekan3
129 Mekan4
130 Mekan5
8 Mekan6
131 Mekan7
132 Mekan8
DECLARE mekan_cursor SCROLL CURSOR FOR
SELECT * FROM Mekan
ORDER BY mekanad
1/2
T-Sql de Cursor Kullanımı
Onur Tekin tarafından yazıldı.
Salı, 01 Aralık 2009 16:10 -
OPEN mekan_cursor
FETCH LAST FROM mekan_cursor (son kaydı döndürür) (132 Mekan8)
FETCH PRIOR FROM mekan_cursor (aktif satırdan bir önceki kaydı döndürür) (131 Mekan7)
FETCH ABSOLUTE 3 FROM mekan_cursor (ilk kayıt baz alınarak 3. kaydı döndürür) (100 Mekan3)
FETCH RELATIVE 2 FROM mekan_cursor (aktif satır baz alınarak, aktif satırdan 2 sonraki
kaydı döndürür) (130 Mekan5)
FETCH RELATIVE -1 FROM mekan_cursor (aktif satır baz alınarak, 1 önceki kaydı döndürür.)
(129 Mekan4)
CLOSE mekan_cursor
DEALLOCATE mekan_cursor
GO
2/2

Benzer belgeler

Cursor VTYS`deki cursor`ler, metin editörlerindeki cursorler ile aynı

Cursor VTYS`deki cursor`ler, metin editörlerindeki cursorler ile aynı -2 : Resultset'teki tüm kayıtlar bittiği için en sona gelindi, daha fazla kayıt yer almıyor. (end of resultset)

Detaylı

Hafta_7_1

Hafta_7_1 -2 : Resultset'teki tüm kayıtlar bittiği için en sona gelindi, daha fazla kayıt yer almıyor. (end of resultset) Şimdi artık, kitaplar listesini sonuna kadar yazdırabiliriz. Bu iş için WHILE yapısın...

Detaylı

Cursor (İmleç)

Cursor (İmleç) FETCH LAST FROM ornek_cur FETCH NEXT FROM ornek_cur INTO @tck, @adsoy PRINT @tck PRINT @adsoy CLOSE ornek_cur DEALLOCATE ornek_cur Örnek-2. Kayıtları tek tek alır ve yazar DECLARE @tck CHAR(11),@ad...

Detaylı