Derinlemesine yazılım eğitimleri için kanalımı takip edebilirsiniz...

SQL Server – Tablolar Arasında İlişki Kullanarak Update İşlemi

Merhaba,

Hepiniz biliyorsunuz ki, SQL sorgularında elimizdeki bir veriyi güncelleştirmek için Update sorgusunu kullanıyoruz. Hatta, ister tek istersekte birden fazla satırın o anki güncellemeden etkilenmesini istiyorsak bu kriterlere müdahale edebiliyoruz. Tamam sinirlenmeyin. Siz yüksek matematikle ilgilenirken ben size toplama çıkarmayı anlattığımın farkındayım. Ama burada bir kritik yapmam gerektiği için konuyu temelden dillendirecek yöntemde bir yaklaşım sergilemek istedim.

Şimdi burada dikkatinizi çekmek istediğim bir nokta var…

Update işleminde birden fazla satır üzerinde güncelleştirme gerçekleştiriyorsanız eğer bu işlemden tüm satırlar aynı güncelleştirmeye tabi tutulacaktırlar. Ya o anki çalışmanız tek bir update ile birden fazla satırda farklı değişiklikler gerçekleştirmeyi gerektiriyorsa?

Yani demek istediğim o ki, “ben tek bir sorguda birden fazla değişikliği veritabanına nasıl yansıtabilirim?” sorusuna cevap aramaktayız ve update sorgusu hakkında bildiğimiz hali hazır yeteneklerin bu işlem için yeterli olmadığını bildiğimizden dolayı cevabımızda farklı bir yapılanmanın arayışı içindeyiz.

Ki bu arayış neticesinde Update ile Select sorgusundaki verileri kullanarak gerçekleştirebileceğimiz güncellemeleri keşfedeceğiz.

Select Sorgusu Kalıbında Update İşlemi

SQL Server - Select Sorgusundaki Verileri Kullanarak Update Gerçekleştirme
Yukarıdaki sorguyu incelerseniz eğer, “Satislar” tablosuna yapılan update işlemi “Personeller” tablosuyla beslenmektedir. Sorgu neticesine göz atarsanız eğer her bir güncellemede “Personeller” tablosundaki tekbir satırın kullanıldığını göreceksiniz.

Demek ki bu şekilde bir kullanım amacımıza yaklaşmış olsada tam hizmet etmemektedir. Biz her bir güncellemeyi sıralı olarak farklı satırlar için gerçekleştirmesini istemekteyiz. O halde bu işlem için “from” komutundan sonra gelen tablo ile Update sorgusu arasında Inner Join ilişkisi kurabilirsek ilgili select sorgusuna özel tüm değerler için bir update işlemi gerçekleştirebiliriz ve bu işlemi tek bir sorguda halledebiliriz.

Inner Join İle İlişkisel Update İşlemi

SQL Server - Select Sorgusundaki Verileri Kullanarak Update Gerçekleştirme
Gördüğünüz üzere “Personeller” tablosu ile “Satislar” tablosu üzerinde kurulan ilişki sayesinde bu sefer satışa ait personel üzerinden güncelleştirme gerçekleştirildiğinden dolayı her bir satırda farklı bir update yansıması söz konusu olmuştur.

Vee görüldüğü üzere tek bir yapısal update kodu ile ilişkisel tablo mantığını kullanarak birden fazla satırdaki veriyi farklı değerlerle güncellemiş bulunmaktayız.

Sonraki yazılarımda görüşmek üzere…
İyi çalışmalar dilerim…

Bunlar da hoşunuza gidebilir...

1 Cevap

  1. Emre dedi ki:

    Merhabalar yukarıdaki kodlarınız ve ayrıca

    UPDATE A
    SET A.NAME = B.NAME
    FROM TableNameA A, TableNameB B
    WHERE A.ID = B.ID
    

    Kod sayesinde tablolar arası güncelleştirmeleri yapıyorum, matematiksel işlemler yapıyorum ancak bu işlem miktarı ortalama 200 satırı geçince adeta veri kayması olur gibi 50-60. Satırdan sonra farklı sonuçlar çıkarıyor ve sorun oluyor, localde sorun olmuyor ama web üzerinde oluyor bunun nasıl önüne gelebilirim ?

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir