Herkese merhaba,
Bu yazıda sizlere SQL Server’da cursor kullanarak update işleminin nasıl yapılacağından bahsedeceğim. Örnek işlemi Northwind veritabanı kullanarak yaptık. Kodları aşağıda görmektesiniz.
--Değişken tanımlama
DECLARE @KategoriID INT
--Değişkene değer atama (Sadece CategoryID=1 olanları güncelleyeceğiz)
SET @KategoriID=1
--Cursor değişkeni oluşturma ve oluşturulan Cursor'un CategoryID içinde dönmesi
DECLARE crs CURSOR
FOR
SELECT CategoryID
FROM dbo.Products
WHERE CategoryID=@KategoriID
--Cursor açma işlemi
OPEN crs
--Cursor @KategoriID içinde dönecek
FETCH NEXT FROM crs INTO @KategoriID
--Son kayıta kadar döndürme işlemi yapıyoruz.
WHILE @@FETCH_STATUS = 0
BEGIN
--Güncelleme işlemi
UPDATE dbo.Products
SET UnitPrice = UnitPrice + 5
WHERE CURRENT OF crs
FETCH NEXT FROM crs INTO @KategoriID
END
--Cursoru kapatıyoruz
CLOSE crs
--Cursor'u öldürüyoruz.
DEALLOCATE crs
--Kontrol ediyoruz.
SELECT * FROM dbo.Products WHERE CategoryID=1
Yukarıdaki işlemde ürünler tablosunda kategorisi bire eşit olanların birim fiyatını 5 birim arttırdık. Bu tarz işlemlerde cursor kullanımı oldukça pratik olacaktır.
Herkese çalışma hayatında ve yaşamında başarılar kolaylıklar.
