none
Iki tabloya aynı anda kayıt ekleme RRS feed

  • Soru

  • Merhaba. Veritabanında 2 farklı tablo(Person, DenemeTablosu) var. Alanları şu şekilde, 

    Person : id, Name, Town, Relationship, Phone, ActionDate

    DenemeTablosu : id, PersonID, Miktar

    Benim yapmak istediğim, kullanıcı Person tablosuna kayıt eklediği zaman son eklenen kaydın "id" değeri ile "DenemeTablosu" isimli tabloya kayıt yapmak. DenemeTablosu' ndaki PersonID, Person tablosuna son eklenen kaydın id' si olacak. Şöyle bir stored procedure yazdım ama tam istediğim şekilde çalışmıyor. En azından parametre göndermeden çalışmıyor. Nedenini bulamadım 

    CREATE PROCEDURE sp_Deneme 
      (@ident INT OUTPUT)
    AS
    BEGIN
    INSERT INTO [Eczane].[dbo].[Person] VALUES ('Name', 'Town', 'RRRRR', '555 555 44 44','2014-05-11')
    SELECT @ident = @@IDENTITY
    INSERT INTO [Eczane].[dbo].[DenemeTablosu] Values (@ident)
    PRINT @ident
    END
    PArametre göndermeden bu istediğim şekilde nasıl yapılabilir ?

    15 Ağustos 2014 Cuma 19:14

Yanıtlar

  • Yanlış mı anladım bilmiyorum ama aşağıdaki gibi yapabilirsin. Trigger da kullanabilirsin tabi sana kalmış.

    CREATE PROC SP_TEST
    AS
    BEGIN
    INSERT INTO Person (Name,Town,Phone) VALUES ('Oğuz KURTCUOĞLU','ANTALYA','+90 531 559 3723')
    DECLARE @PersonId INT
    SET @PersonId = SCOPE_IDENTITY()
    INSERT INTO Deneme (PersonId,Miktar) VALUES (@PersonId,15)
    PRINT @PersonId
    END
    
    EXEC SP_TEST


    <img src="https://scontent-a-vie.xx.fbcdn.net/hphotos-xfa1/t1.0-9/995615_10202649602510335_3782044533717486705_n.jpg">

    • Yanıt Olarak İşaretleyen Miha Novak 17 Ağustos 2014 Pazar 19:38
    16 Ağustos 2014 Cumartesi 09:07

Tüm Yanıtlar

  • Ne güzel output parametre kullanmışsınız. Oradan gelen id ye göre diğer tabloya da giriş yapınız. Halletmiş sayılırsınız.


    Mail Gönder


    • Yanıt Olarak Öneren Soner KOYLU 15 Ağustos 2014 Cuma 20:29
    • Yanıt Önerisini Geri Alan Soner KOYLU 15 Ağustos 2014 Cuma 20:29
    • Düzenleyen Soner KOYLU 15 Ağustos 2014 Cuma 20:30
    15 Ağustos 2014 Cuma 20:28
  • Yanlış mı anladım bilmiyorum ama aşağıdaki gibi yapabilirsin. Trigger da kullanabilirsin tabi sana kalmış.

    CREATE PROC SP_TEST
    AS
    BEGIN
    INSERT INTO Person (Name,Town,Phone) VALUES ('Oğuz KURTCUOĞLU','ANTALYA','+90 531 559 3723')
    DECLARE @PersonId INT
    SET @PersonId = SCOPE_IDENTITY()
    INSERT INTO Deneme (PersonId,Miktar) VALUES (@PersonId,15)
    PRINT @PersonId
    END
    
    EXEC SP_TEST


    <img src="https://scontent-a-vie.xx.fbcdn.net/hphotos-xfa1/t1.0-9/995615_10202649602510335_3782044533717486705_n.jpg">

    • Yanıt Olarak İşaretleyen Miha Novak 17 Ağustos 2014 Pazar 19:38
    16 Ağustos 2014 Cumartesi 09:07
  • Oğuz bey teşekkür ederim. Tam olarak yapmak istediğim şey buydu. 
    17 Ağustos 2014 Pazar 19:38