MS SQL Server Eğitimleri 38 – T-SQL İlişkili Tabloda UPDATE İşlemi

MS SQL Eğitimlerimize ilişkili tablolarda nasıl veri güncellemesi yaparız bunu anlatarak devam ediyorum.

İlişkili veritabanlarında kayıtlar bir biri ile bağıntılı ve ilişkili olduğundan bir tabloda yapılan değişikliklerin tüm ilişkili tablolarına yansıtılması gerekir. Özellikle Foreing Key anahtarının bulunduğu tabloda eğer Foreign Key olan alanda bir Update işlemi yapacaksanız mutlaka bunu birincil tablosunda da yapmanız gerekir. Bunun olmasını ayarlamadı iseniz SQL bu işlemin gerçekleşmesine izin vermeyecektir ve hata dönecektir. İşte bu yazımda bu hatayı almadan bu işlemi nasıl yaparız onu anlatacağım.

Öncelikle hatamızı görelim.

ORDERS tablosundaki FOREIGN  KEY olan alan CUSTOMERID değerini UPDATE etmeye çalışalım.

Böyle bir durumdan kurtulmak için yapmamız gereken işlem şu.

 

STEP 1

Var olan diyagram üzerine sağ tıklayıp MODIFY diyoruz.

 

STEP 2

 

STEP 3

Bir biri ile ilişkili olan tablolarda ilişkiler üzerine gelip sağ tıklıyoruz ve Properties diyoruz.

 

STEP 4

Burada DELETE Rule ve UPDATE Rule sekmelerini No Action durumundan CASCADE durumuna çekiyoruz.

Bu adımı değişikliğin ortak olarak uygulanmasını istediğimiz tüm ilişkiler için tekrarlıyoruz.

STEP 5

Sonra diyagramı kaydediyoruz.

İşte bu kadardı şimdi az önce güncellemeye çalıştığımız kaydı yeniden güncellemeye çalışalım.

Gördüğünüz gibi işlem başarılı bir şekilde 5 kaydı güncelledi.

Dikkat: Burada dikkat etmeniz gereken önemli bir konu şudur. Güncellemek istediğiniz değer eğer Primary Key olan tabloda bulunmuyorsa bu işlemi gerçekleştiremeyecektir. Veri tutarlılığı açısından önemlidir ve SQL buna izin vermez.

Örneğin CUSTOMERID değeri 1000 olan bir müşterimiz yok. ORDERS tablosundaki var olan bir değeri 1000 ile güncellemek istersem bu gerçekleşmeyecektir. 

Bu işlemde bu kadardı bir sonraki yazılarımda görüşmek üzere.

 

Facebook Sayfamizdan Bizleri Takip Edebilirsiniz
Murat Bilginer

Industryolog Akademi Founder – Endüstri Mühendisi
Canias ERP Troia Geliştiricisi & Yazılım Uzmanı
7 Yıldır bildiğini paylaşmak için çabalayan bir blogger.

http://muratbilginer.net/