Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Insert do dwóch tabel
cursor81
post
Post #1





Grupa: Zarejestrowani
Postów: 11
Pomógł: 0
Dołączył: 9.04.2005

Ostrzeżenie: (0%)
-----


witam,

Mam dwie tabele polączene z soba relacja 1-n czy jest możliwość wstawienia do obu tabel jednocześnie
Kod
tabela1                          tabela2
-----------                      ----------------
tabela1_ID PK                tabela2_ID PK(autonumerowanie)
tabela2_ID FK                pole1

(dla wielu rekodów tabela1 istnieje jedno z tabela2)
dla tabeli2: INSERT INTO tabela2 (pole1) VALUES('test')

i teraz bym chciala zeby jak dodaje to pole1 wstawialo mi do tabela1 vartosc tabela2_ID skad moge wiedzec jaka wartosc ma to pole jesli jest ono autonumerowane
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
cursor81
post
Post #2





Grupa: Zarejestrowani
Postów: 11
Pomógł: 0
Dołączył: 9.04.2005

Ostrzeżenie: (0%)
-----


w zasadzie potrzebuje tego do ms sql i sie wlasnie pogubilam ;(
  1. CREATE PROCEDURE DodajRejestracjaPacjent
  2.  
  3. @PacjentID Int = NULL,
  4. @DataRejestracji DateTime = NULL,
  5. @OddzialNazwa VarChar(64) = NULL,
  6. @NazwaChoroby varchar(256) = NULL,
  7. @i int =NULL AS DECLARE @OddzialKod Char(10)
  8. DECLARE @RejestracjaID int
  9. DECLARE @ChorobaKod char(5)
  10.  
  11. SET @OddzialKod = (SELECT OddzialKod
  12. FROM sOddzial WHERE OddzialNazwa = @OddzialNazwa)
  13. <span style="font-weight: bold;">set @RejestracjaID = (SELECT RejestracjaID
  14. FROM tRejestracja )
  15. SET @ChorobaKod =(SELECT ChorobaKod
  16. FROM sNazwaChoroby WHERE NazwaChoroby = @NazwaChoroby)
  17.  
  18. INSERT
  19. INTO tRejestracja ( PacjentID, DataRejestracji, OddzialKod)
  20. VALUES (@PacjentID, @DataRejestracji, @OddzialKod)
  21. <span style="font-weight: bold;">
  22. IF EXISTS (SELECT OddzialKod
  23. FROM sOddzial) INSERT
  24. INTO sRozpoznania (ChorobaKod, RejestracjaID) VALUES ( @ChorobaKod, @RejestracjaID)
  25. GO

chodzii mi o ten fragment:

if exists (SELECT OddzialKod FROM sOddzial)
INSERT INTO sRozpoznania (ChorobaKod, RejestracjaID) VALUES ( @ChorobaKod, @RejestracjaID)


jak zapisac bierzace RejestracjaID ktore tworzy sie przy wstawianiu

INSERT INTO tRejestracja ( PacjentID, DataRejestracji, OddzialKod)
VALUES (@PacjentID, @DataRejestracji, @OddzialKod)


RejestracjaID jest autonumerowane w tRejestracja
-------------
ok juz znalazlam @@IDENTITY zwraca wartosc ostatniego wstawionego wiersza.

jakby kmus kiedys sie to przydalo to powinno wygladac tak zeby dzialalo :
  1. CREATE PROCEDURE DodajRejestracjaPacjent
  2.  
  3. @PacjentID Int = NULL,
  4. @DataRejestracji DateTime = NULL,
  5. @OddzialNazwa VarChar(64) = NULL,
  6. @NazwaChoroby varchar(256) = NULL,
  7. @i int =NULL AS DECLARE @OddzialKod Char(10)
  8. DECLARE @RejestracjaID int
  9. DECLARE @ChorobaKod char(5)
  10.  
  11. SET @OddzialKod = (SELECT OddzialKod
  12. FROM sOddzial WHERE OddzialNazwa = @OddzialNazwa)
  13.  
  14. SET @ChorobaKod =(SELECT ChorobaKod
  15. FROM sNazwaChoroby WHERE NazwaChoroby = @NazwaChoroby)
  16.  
  17. INSERT
  18. INTO tRejestracja ( PacjentID, DataRejestracji, OddzialKod)
  19. VALUES (@PacjentID, @DataRejestracji, @OddzialKod)
  20.  
  21. SET @RejestracjaID = (SELECT RejestracjaID
  22. FROM tRejestracja WHERE RejestracjaID = @@IDENTITY )
  23.  
  24. IF EXISTS (SELECT OddzialKod
  25. FROM sOddzial) INSERT
  26. INTO sRozpoznania (ChorobaKod, RejestracjaID) VALUES ( @ChorobaKod, @RejestracjaID)
  27. GO


Wielkie dzieki wszystkim za pomoc.

Ten post edytował cursor81 2.05.2005, 20:47:04
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 16.10.2025 - 12:35