Sql Server while Döngüsü

Herkese merhaba, Sql Server yazılarımıza kaldığımız yerden devam ediyoruz. Bu yazımızda while döngüsü hakkında bahsedeceğim. Hadi başlayalım !
while döngüsü belkide bütün programlama dillerinde mevcut olan bir döngü ve kendisine verilen bir şart geçerli olduğu sürece döngü bloğu içerisindeki kodları tekrar tekrar çalıştırıyor. Tabi tekrar tekrar çalıştırıyordan kasıt sürekli aynı işlemi yapıyor demek değil. Örneğin bir metin belgesini satır satır okuyup her satır için bir HTTP isteği atan ve veritabanına kaydeden bir kod yazmak istendiğinde while döngüsü bu işin adamı olacaktır. Sql Server’da ise örneğin bir select sorgusundan dönen veriler üzerinde işlem yapan bir cursor’u ilerletmek için kullanılabilir. Yada cursor kullanmadan da bir tablo üzerinden adım adım veri okumak ve her okunan veri üzerinde işlem yapmak için kullanılabilmektedir. Tabi bu örnekler şu an benim aklıma gelenler, while döngüsünün daha bir çok kullanım alanı bulunmaktadır, ihtiyaçlarınıza göre kullanabilirsiniz.
while döngüsünün şöyle bir yapısı bulunmaktadır;
while şart
begin
-- while içerisinde yapılacak işlemler
end
Buradaki şartın boolean tipte olması gerekiyor ve bu şart sağlandığı sürece içerisine yazmış olduğunuz Sql kodları çalıştırılacaktır. Örneğin bir tane integer değişken oluşturup 1’den başlatalım ve değişkenimiz 5 olana kadar ekranda yazdıralım;
declare @sayi int = 1
while @sayi < 5
begin
select @sayi
select @sayi = @sayi + 1
end
Burada görüldüğü üzere @sayi < 5 şartı sağlandığı sürece yani @sayi değişkeninin değeri 4 olana kadar (4 dahil) ekrana @sayi değişkeninin değerini yazdıracaktır. Bu sorguyu çalıştırdığınızda şöyle bir çıktı göreceksiniz;

Çok basit bir örnek verdim fakat while döngüsü içerisinde Sql sorgusu da çalıştırılabiliyor. Örneğin içerisinde integer tipte id ve varchar tipte kitapAdi olan kitaplar adında bir tane tablomuz olduğunu varsayalım. Bu tablodan id değeri 1’den 10’a kadar olanları silmek istiyorsunuz diyelim. Bunu yapmak için bir çok yol bulunmakta fakat while döngüsü ile de yapılabilir. Şimdi biz while döngüsü kullanarak bunu yapalım.
declare @id int = 1
while @id < 10
begin
delete from kitaplar where id = @id
@id = @id + 1
end
Evet burada da görüldüğü üzere while döngüsü içerisinde Sql sorgusu çalıştırdık. Yazı içerisinde basit örnekler veriyorum fakat while döngüsü içerisindeki Sql kodlarının normal Sql kodlarından bir farkı yok, yani doğrudan yazdığınız Sql kodlarını while döngüsü içerisine de yazabilirsiniz. Değişken tanımlama, sistem yada kendi oluşturduğunuz fonksiyonlar, stored procedureler, viewlar vs gibi her şeyi kullanabilir ve işlem yapabilirsiniz, yani yapabileceklerinizin bir sınırı bulunmuyor.
Evet Sql Server’da while döngüsü kullanımı bu şekilde. Tüm Sql Server yazılarımıza buraya tıklayarak ulaşabilirsiniz. Herkese hayırlı günler.