donkosiorro
25.06.2015, 20:07:06
Witam.
Mam pytanie w jaki sposob ułożyc procedurę skladowaną która po dodaniu transakcji sprzedaży produktu pomniejszy mi jego ilość z innej tabeli o tyle ile zostało "sprzedanych " sztuk?
Jaśniej chodzi o to ze jak w tabeli TRANSAKCJA dodam rekord gdzie odwołam się do klucza obcego do tabeli STANY_MAGAZYNOWE i zatwierdze to zmiejszy mi sie w tabeli STANY MAGAZYNOWE w atrybucie ilosć właśnie ilosc tego produktu o 1
bede wdzięczny za info
pozdrawiam
Fred1485
25.06.2015, 20:28:57
Jeśli po modyfikacji czy też dodaniu jakiegoś rekordu ma sie wywołać jakas funkcja np zmiana w tabeli zainteresuj się wyzwalaczami (triggers).
donkosiorro
25.06.2015, 20:34:06
ok użyłem nazwa procedura skladowana w ogólnym znaczeniu. Wyzwalacz to specjalny rodzaj procedury
Chodzi mi bardziej jak mniej wiecej powinien wygladać kod takiego wyzwalacza bo nie bardzo ogarniam jak napisać go
CuteOne
25.06.2015, 20:57:25
CREATE TRIGGER zmien
AFTER INSERT
ON transakcja
BEGIN
UPDATE STANY_MAGAZYNOWE SET stany -= 1 WHERE id_stanu = :new.id_stanu
END;
Więcej na google: triggers on create
donkosiorro
25.06.2015, 21:04:48
co bym nie robił ciągle wyskakuje komunikat Incorrect syntax near 'After'. :/
mmmmmmm
25.06.2015, 21:24:12
Jakbys podał co to za DBMS to byłoby znacznie łatwiej... Domyślam się, że MS SQL Server, ale jaka wersja?
donkosiorro
25.06.2015, 21:28:37
tak MS SQL SERWER 2012
CuteOne
25.06.2015, 21:31:40
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę
kliknij tutaj.