Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> trigger for insert, prosze o wskazówki
john_doe
post
Post #1





Grupa: Zarejestrowani
Postów: 873
Pomógł: 25
Dołączył: 24.07.2005

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


Witajcie,

mam do napisania moj 1szy TRIGGER (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
podczas gdy sa wstawiane wiersze do jednej tabeli musze wstawic cos do innej.

czy zapis w stylu

  1. SELECT id, cos1, cos1 FROM inserted


oznacza pobranie tych pol z tabeli na ktorej robie insert? czy tam na ktorej jest ten trigger?

albo takie pytanie jeszcze:
jak w klauzuli WHERE odwołac sie do wlasnie wstawionego pola? czyli np

  1. UPDATE Tabela SET Opis=@OPIS
  2. WHERE tabela_id = (i tutaj chcialbym id tego do ktorego poszedl INSERT)


pozdrawiam

Ten post edytował john_doe 9.09.2006, 12:25:41
Go to the top of the page
+Quote Post
SongoQ
post
Post #2





Grupa: Przyjaciele php.pl
Postów: 2 923
Pomógł: 9
Dołączył: 25.10.2004
Skąd: Rzeszów - studia / Warszawa - praca

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


Moze tak:

  1. DECLARE @ID INT
  2. SELECT @ID = (SELECT ID FROM Inserted) INSERT TABLE VALUES (@ID)


A jak nie to tak jak w PG przez new
Go to the top of the page
+Quote Post
john_doe
post
Post #3





Grupa: Zarejestrowani
Postów: 873
Pomógł: 25
Dołączył: 24.07.2005

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


wszystko dziala trigger jest praaaawie oki gdyby nie najwazniejsza rzecz:

  1. DECLARE @OPIS VARCHAR(100)
  2. DECLARE @GIDTYP INT
  3. DECLARE @GIDFIRMA INT
  4. DECLARE @GIDNUMER INT


potem robie insert

  1. INSERT INTO tabela.TRNOPISY (TnO_TrnTyp, TnO_TrnFirma, TnO_TrnNumer, TnO_TrnLp, TnO_Typ, TnO_Opis)
  2. VALUES (@GIDTYP, @GIDFIRMA, @GIDNUMER, 0, 0, @OPIS)


i tutaj zonk bo do tabeli wrzuca mi NULL (@opis)

co moze byc nie tak?
Go to the top of the page
+Quote Post
SongoQ
post
Post #4





Grupa: Przyjaciele php.pl
Postów: 2 923
Pomógł: 9
Dołączył: 25.10.2004
Skąd: Rzeszów - studia / Warszawa - praca

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


Napisz w jaki sposob przypisujesz dane do zmiennych.
Go to the top of the page
+Quote Post
john_doe
post
Post #5





Grupa: Zarejestrowani
Postów: 873
Pomógł: 25
Dołączył: 24.07.2005

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


  1. DECLARE @OPIS VARCHAR(70)
  2. DECLARE @GIDTYP INT
  3. DECLARE @GIDFIRMA INT
  4. DECLARE @GIDNUMER INT
  5.  
  6. SELECT @GIDTYP = ( SELECT TRN_GIDTYP FROM INSERTED )
  7. SELECT @GIDFIRMA = ( SELECT TRN_GIDFIRMA FROM INSERTED )
  8. SELECT @GIDNUMER = ( SELECT TRN_GIDNUMER FROM INSERTED) SELECT @OPIS = (
  9. SELECT kno_opis
  10. FROM kntkarty RIGHT OUTER JOIN kntopisy
  11. ON Knt_GIDNumer = KnO_KntNumer
  12. WHERE KNT_AKRONIM =
  13. (
  14. SELECT KNT_AKRONIM FROM KNTKARTY LEFT OUTER JOIN TRANAG
  15. ON Knt_GIDNumer = TrN_KntNumer
  16. WHERE TRN_GIDNUMER = @GIDNUMER
  17. )
  18. )
  19.  
  20. INSERT INTO TRNOPISY ( TnO_TrnTyp, TnO_TrnFirma, TnO_TrnNumer, TnO_TrnLp, TnO_Typ, TnO_Opis )
  21. VALUES ( @GIDTYP, @GIDFIRMA, @GIDNUMER, 0, 0, @OPIS )


to jest body mojego trigera. wszystkie zmienne dzialaja za wyjatkiem @opis. sprawdzalem ta co mam pod @opis i jest oki ale do tabeli dodaje NULL

Ten post edytował john_doe 10.09.2006, 01:40:35
Go to the top of the page
+Quote Post
SongoQ
post
Post #6





Grupa: Przyjaciele php.pl
Postów: 2 923
Pomógł: 9
Dołączył: 25.10.2004
Skąd: Rzeszów - studia / Warszawa - praca

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


Moze mu typy nie pasuja ale wtedy by blad wywalil. Ale jest wartosc jest pod opisem to powinien zadzialac. Zostaje Ci googlowanie i przegladanie dokumentacji moze cos konkretnego znajdziesz.
Go to the top of the page
+Quote Post

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: 22.08.2025 - 17:56