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
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
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…
Merhabalar yukarıdaki kodlarınız ve ayrıca
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 ?