Sıralama: Administration
Gruplar: Administrators
Katılan: 6.05.2014(UTC) Mesajlar: 670
19 Kere Teşekkür Etti. 152 Mesajına Toplam 253 Kere Teşekkür Edildi.
|
Merhabalar Cursor Satır satır dolaşmayı sağlar , örnek bir Cursor kodu , Bir üstündeki satırdan kendi değerini çıkarıp hesaplayan kod , Bir tablo oluşturalım Kod:
CREATE TABLE [dbo].[Hesap](
[id] [int] IDENTITY(1,1) NOT NULL,
[Deger] [int] NULL,
CONSTRAINT [PK_Hesap] PRIMARY KEY CLUSTERED
(
[id] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
Sonra Değerleri Girelim Kod:
id Deger
1 5
2 20
3 30
4 25
5 70
6 10
7 60
Sonra Cursor ı yazalım Kod:
-- Değişkenler tanımlanır
DECLARE @id INT = 0
DECLARE @deger INT = 0
DECLARE @fark INT = 0
--Cursor tanımlanır, hangi sorguda çalışacağı belirlenir
DECLARE Hesapla CURSOR FOR
SELECT id,Deger FROM Hesap ORDER BY id
--Cursor açılır
OPEN Hesapla
-Her yeni değer atanır
FETCH NEXT FROM Hesapla INTO @id,@deger
WHILE @@FETCH_STATUS =0
BEGIN
SELECT @fark = deger - @fark from Hesap WHERE id=@id
SELECT @id,@fark
FETCH NEXT FROM Hesapla INTO @id,@deger
END
CLOSE Hesapla
--Bellekten silinir
DEALLOCATE Hesapla
Sonuç Kod:
(No column name) (No column name)
1 10
(No column name) (No column name)
2 -5
(No column name) (No column name)
3 35
(No column name) (No column name)
4 -10
(No column name) (No column name)
5 80
(No column name) (No column name)
6 -70
(No column name) (No column name)
7 130
Kolay Gelsin |
Sql Server 2016 Eğitimiz 19 Mayıs tarihinde başlayacaktır. 32 Saat Olup Ücret 1450 TL + KDV'dir. Kayıt ve ayrıntılar için tıklayınıztwitter.com/dbakademi Dua ve teşekkür en büyük servetlere bedel... |
|
|
|
Sıralama: Member
Gruplar: Registered
Katılan: 22.11.2014(UTC) Mesajlar: 19 10 Kere Teşekkür Etti. 5 Mesajına Toplam 6 Kere Teşekkür Edildi.
|
Mehmet Hocam bunu sql üzerinde yapmamız bize ne kazandırır? Çok Kullanılma gereği duyulan bir şey midir bu Cursor'lar..While ile sıyrılamaz mıyız :) ?
|
|
|
|
Sıralama: Administration
Gruplar: Administrators
Katılan: 6.05.2014(UTC) Mesajlar: 670
19 Kere Teşekkür Etti. 152 Mesajına Toplam 253 Kere Teşekkür Edildi.
|
Originally Posted by: diaboli Mehmet Hocam bunu sql üzerinde yapmamız bize ne kazandırır? Çok Kullanılma gereği duyulan bir şey midir bu Cursor'lar..While ile sıyrılamaz mıyız :) ? Bu bize row bazlı işlem yapmamızı saglar, ne while bu işe yaramıyor :) |
Sql Server 2016 Eğitimiz 19 Mayıs tarihinde başlayacaktır. 32 Saat Olup Ücret 1450 TL + KDV'dir. Kayıt ve ayrıntılar için tıklayınıztwitter.com/dbakademi Dua ve teşekkür en büyük servetlere bedel... |
|
|
|
Sıralama: Member
Gruplar: Registered
Katılan: 4.07.2016(UTC) Mesajlar: 10 1 Mesajına Toplam 1 Kere Teşekkür Edildi.
|
Originally Posted by: mehmetzekikir Originally Posted by: diaboli Mehmet Hocam bunu sql üzerinde yapmamız bize ne kazandırır? Çok Kullanılma gereği duyulan bir şey midir bu Cursor'lar..While ile sıyrılamaz mıyız :) ? Bu bize row bazlı işlem yapmamızı saglar, ne while bu işe yaramıyor :) Neden satır satır işlem yapmaya ihtiyaç duyalım? Cursor kullanırsak ne olur, kullanmazsak ne olur mesela? Bu konuya açıklık getirebilecek bir örnek gösterir misiniz? Her yerde cursor un satır satır iş yaptığı yazıyor, eyvallah da ee yani? :) Sonuçta cursor un kullanmadan da iş yapamazmıydık? Cursor ne kazandırıyor ki bize?
|
|
|
|
Forumu Atla
Bu foruma yeni konular postalayamazsınız.
Bu forumda ki konulara yeni posta gönderemezsiniz.
Bu forumdaki postalarınızı silemezsiniz.
Bu forumdaki postalarınızı düzenleyemezsiniz.
Bu forumda anketler yaratamazsınız.
Bu forumdaki anketlere oy veremezsiniz.