En iyi yanıtlayıcılar
Iki tabloya aynı anda kayıt ekleme

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 ?
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
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.
- 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
-
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
-