Sql Server'da bir kullanıcıya ait birden çok bilginin ilişkili tablolarda saklandığı bir senaryoda aşağıdaki tablolar mevcut.
- Kullanicilar
- Siiparisler
- SiparisUrunleri
Bu tablolarda primary ve foreign key'ler zaten tablo adlarından da tahmin edilebilir. Problem ise ben bir kulllanıcıyı sistemden sildiğimde bağlı olan siparişleri ve sipariş kalemlerini de silmek istiyorum.
Siparişler tablosunda kullaniciadi bilgisi olduğu için ilk 2 tabloyu silmek kolay:
delete from kullanicilar where kullaniciadi=@username
delete from siparisler where kullaniciadi=@username
Ama sipariş kalemleri, SiparisUrunleri tablosunda saklanıyor ve foreignkey olarak Siiparisler tablosuna bağlı. Ama ben bir kullanıcıyı sildiğimde:
- Kullanıcının
- Kullanıcının siparişlerinin
- Kullanıcı siparişlerinin tüm kalemlerinin
silinmesini istiyorum. Delete işlemini Select sorgusu kullanarak nasıl yapabilirim?