none
Tek Bir Formdan Gönderilen Veriyi İki Farklı Tabloya Aynı Anda Veri Ekleme RRS feed

  • Soru

  • Üstadlar Merhaba,

    Bir konu hakkında takıldığım yardımcılarınızı rica ediyorum konu ise şu... Formdan gelen bilgileri aynı anda iki farklı tabloya kayıt yaptırmak istiyorum.. Kod ile yaptırıyorum ama pek sağlıklı değil gibi programda oluşan bir hatada 1. tabloya veri ekleyip 2. tabloya eklememe gibi sıkıntılar çıkabilir diye düşünüyorum bunun için sağlıklı bir yol izlemek istiyorum veri kaybı yaşamak istemiyorum. Biraz araştırdım triger ile çözebileceğim kanısına vardım ama emin değilim.. Triger ile çözebilir miyim bunu? yada daha mantıklı bir yol var mıdır? 

    7 Kasım 2019 Perşembe 10:55

Yanıtlar

  • hatada 1. tabloya veri ekleyip 2. tabloya eklememe gibi sıkıntılar çıkabilir diye düşünüyorum

    Çıkar da. Bunun için Transaction açıyoruz, iki işlem bitince commit mesajı ile gönderdiğimiz tüm işlemleri kalıcı olarak yapmasını hata olunca rollback mesajı ile tüm yaptıklarını geri almasını istiyoruz. Bağlantı koparsa rollback'i kendisi yapıyor zaten.

    Bunun için sp kullanmayın.


    www.cihanyakar.com


    • Düzenleyen Cihan Yakar 7 Kasım 2019 Perşembe 16:21
    • Yanıt Olarak İşaretleyen zkannn 9 Kasım 2019 Cumartesi 08:58
    7 Kasım 2019 Perşembe 16:20

Tüm Yanıtlar

  • Aynı veriyi ekleyecekseniz , sql procedure oluşturup içerisinde iki insert ile işlem yapın.

    Altan Özdemir

    7 Kasım 2019 Perşembe 11:30
  • hatada 1. tabloya veri ekleyip 2. tabloya eklememe gibi sıkıntılar çıkabilir diye düşünüyorum

    Çıkar da. Bunun için Transaction açıyoruz, iki işlem bitince commit mesajı ile gönderdiğimiz tüm işlemleri kalıcı olarak yapmasını hata olunca rollback mesajı ile tüm yaptıklarını geri almasını istiyoruz. Bağlantı koparsa rollback'i kendisi yapıyor zaten.

    Bunun için sp kullanmayın.


    www.cihanyakar.com


    • Düzenleyen Cihan Yakar 7 Kasım 2019 Perşembe 16:21
    • Yanıt Olarak İşaretleyen zkannn 9 Kasım 2019 Cumartesi 08:58
    7 Kasım 2019 Perşembe 16:20
  • Trigger olarak bundan faydalanabilirsin.. Eğer trigger örneği bulamadıysan..

    ALTER trigger [dbo].[OdemeEkle] on [dbo].[Alim]
    for insert
    AS 
    declare
    @kayno int
    select @kayno = kayitno from Inserted
    Insert into dbo.Odeme (refno, ckodu, stokkodu, tarih, aciklama, miktar, fiyat, tutar)
    select kayitno, ckodu, stokkodu, tarih, aciklama, miktar, fiyat, tutar 
    from dbo.Alim
    where kayitno=(select @kayno from Inserted)

    @kayno Insert işlemi yapılan tablonun kayıt nosu.. Bu kolon bilgisini diğer tabloda referans olarak kullanmak istersen diye eklenmiştir. 
    19 Kasım 2019 Salı 12:15
  • @Serhat bey, bu triggerdaki insert işlemi sırasında bir hata olursa ilk insert işlemi geri alınacak mıdır?

    www.cihanyakar.com

    20 Kasım 2019 Çarşamba 08:09