none
Çoka çok ilişkili bir tabloya kayıt ekleme? RRS feed

  • Soru

  • Herkese merhaba; 

    3 adet çoka çok ilişkili tablom var. A tablosunun ID si ve B tablosunun ID si, C tablosunda birbirleriyle ilişkili. Yani ara geçiş tablosu diye tabir ettiğimiz bir durum söz konusu. Ben burada nasıl kayıt eklerim onu öğrenmek istiyorum. Cevap veren herkese şimdiden teşekkür ederim...

    18 Şubat 2014 Salı 11:18

Yanıtlar

  • Create proc sp_kaydet (@deger1 nvarchar(255),@deger2 nvarchar(255),@deger3 nvarchar(255),@deger4 nvarchar(255),@sonuc int output)
    begin
    begin try
    begin tran
    declare ilkID int
    declare ikinciID int
    set @ilkID=(Insert into Tablo1(Alan1,Alan2) values(@deger1,@deger2) select SCOPE_IDENTITY())
    set @ikinciID=(Insert into Tablo2(Alan1,Alan2) values(@deger3,@deger4) select SCOPE_IDENTITY())
    Insert into Tablo3(ID1,ID2) values(@ilkID,@ikinciID)
    /*1'se kayıtları yapmış demektir.*/
    set @sonuc=1
    end try
    begin catch
    rollback tran
    /*sonuc 0'sa hata ile karşılaştığını, kaydın yapılmadığını belirtir.*/
    set @sonuc=0
    end catch
    end
    Basit olarak, anlaman açısından yukarıdaki şekilde yapabilirsin. Olayı anlaman açısından, kodları basit tuttum.

    Microsoft bu servisi kullanıcılarına yardım etme, Microsoft urunleri ve teknolojileriyle ilgili bilgi bankasını genişletme amacıyla ucretsiz sunmaktadır. Bu icerik olduğu gibi benim tarafımdan hazırlanmış olup Microsoft tarafından herhangi bir sorumluluk ustlenildiği anlamına gelmez. Iletişim: Mail Gönder



    18 Şubat 2014 Salı 11:55

Tüm Yanıtlar

  • Linq'mi Normal MSSQL komutlarıylamı ?

    Microsoft bu servisi kullanıcılarına yardım etme, Microsoft urunleri ve teknolojileriyle ilgili bilgi bankasını genişletme amacıyla ucretsiz sunmaktadır. Bu icerik olduğu gibi benim tarafımdan hazırlanmış olup Microsoft tarafından herhangi bir sorumluluk ustlenildiği anlamına gelmez. Iletişim: Mail Gönder

    18 Şubat 2014 Salı 11:28
  • MSSQL komutları.
    18 Şubat 2014 Salı 11:32
  • Create proc sp_kaydet (@deger1 nvarchar(255),@deger2 nvarchar(255),@deger3 nvarchar(255),@deger4 nvarchar(255),@sonuc int output)
    begin
    begin try
    begin tran
    declare ilkID int
    declare ikinciID int
    set @ilkID=(Insert into Tablo1(Alan1,Alan2) values(@deger1,@deger2) select SCOPE_IDENTITY())
    set @ikinciID=(Insert into Tablo2(Alan1,Alan2) values(@deger3,@deger4) select SCOPE_IDENTITY())
    Insert into Tablo3(ID1,ID2) values(@ilkID,@ikinciID)
    /*1'se kayıtları yapmış demektir.*/
    set @sonuc=1
    end try
    begin catch
    rollback tran
    /*sonuc 0'sa hata ile karşılaştığını, kaydın yapılmadığını belirtir.*/
    set @sonuc=0
    end catch
    end
    Basit olarak, anlaman açısından yukarıdaki şekilde yapabilirsin. Olayı anlaman açısından, kodları basit tuttum.

    Microsoft bu servisi kullanıcılarına yardım etme, Microsoft urunleri ve teknolojileriyle ilgili bilgi bankasını genişletme amacıyla ucretsiz sunmaktadır. Bu icerik olduğu gibi benim tarafımdan hazırlanmış olup Microsoft tarafından herhangi bir sorumluluk ustlenildiği anlamına gelmez. Iletişim: Mail Gönder



    18 Şubat 2014 Salı 11:55
  • Teşekkür ederim. Bu prosedürü C# tarafına modifiye ederim. Gayette sade ve açıklayıcı yazmışsınız gerçekten.Tekrar teşekkürler ;)
    18 Şubat 2014 Salı 12:14
  • Create proc sp_kaydet (@deger1 nvarchar(255),@deger2 nvarchar(255),@deger3 nvarchar(255),@deger4 nvarchar(255),@sonuc int output)
    begin
    begin try
    begin tran
    declare ilkID int
    declare ikinciID int
    set @ilkID=(Insert into Tablo1(Alan1,Alan2) values(@deger1,@deger2) select SCOPE_IDENTITY())
    set @ikinciID=(Insert into Tablo2(Alan1,Alan2) values(@deger3,@deger4) select SCOPE_IDENTITY())
    Insert into Tablo3(ID1,ID2) values(@ilkID,@ikinciID)
    /*1'se kayıtları yapmış demektir.*/
    set @sonuc=1
    end try
    begin catch
    rollback tran
    /*sonuc 0'sa hata ile karşılaştığını, kaydın yapılmadığını belirtir.*/
    set @sonuc=0
    end catch
    end
    Basit olarak, anlaman açısından yukarıdaki şekilde yapabilirsin. Olayı anlaman açısından, kodları basit tuttum.

    Microsoft bu servisi kullanıcılarına yardım etme, Microsoft urunleri ve teknolojileriyle ilgili bilgi bankasını genişletme amacıyla ucretsiz sunmaktadır. Bu icerik olduğu gibi benim tarafımdan hazırlanmış olup Microsoft tarafından herhangi bir sorumluluk ustlenildiği anlamına gelmez. Iletişim: Mail Gönder



    hocam aynı sorun bende de var.kodu kendime uyarlayıp çalıştırdım ama her hangi bir şey olmadı.a ve b tablolarına kayıt girdiğimde c tablosu boş gözüküyor.exec sp_kaydet dedğimde ise hata veriyor.acaba nerede yanlış yapmış olabilirim?

    Create proc sp_kaydet (@deger1 nvarchar(30),@deger2 nvarchar(30),@sonuc int output)
    as
    begin
    begin try
    begin tran
    declare @kitap_id int
    declare @yazar_id int
    insert into kitaplar(kitap_ad) values(@deger1) set @kitap_id= SCOPE_IDENTITY()
    insert into yazarlar(yazar_ad) values(@deger2) set @yazar_id= SCOPE_IDENTITY()
    Insert into yazarlarkitaplar(kitap_id,yazar_id) values(@kitap_id,@yazar_id)
    /*1'se kayıtları yapmış demektir.*/
    set @sonuc=1
    end try
    begin catch
    rollback tran
    /*sonuc 0'sa hata ile karşılaştığını, kaydın yapılmadığını belirtir.*/
    set @sonuc=0
    end catch
    end
    sizin koddaki insert kısmı hata verdiği için yukardaki gibi değiştirdim.

    • Düzenleyen rootharun 10 Mart 2015 Salı 11:01 düzenleme
    10 Mart 2015 Salı 10:58