· 7 years ago · Jan 14, 2019, 11:38 AM
1CREATE TABLE Uslugi(
2 --nazwa uslugi
3 id NCHAR( 10 ) PRIMARY KEY
4);
5
6CREATE TABLE Produkty(
7 --nazwa produktu
8 id NCHAR( 10 ) PRIMARY KEY
9);
10
11CREATE TABLE Faktury(
12 id INT,
13 pu NCHAR( 10 ), --produkt/usluga
14 PRIMARY KEY( id, pu )
15 --pozostale kolumny
16);
17
18GO
19CREATE TRIGGER TRIGGER_FAKTURA ON Faktury
20AFTER INSERT
21AS IF EXISTS ( SELECT pu FROM inserted WHERE --jeśli brakuje przynajmniej jednego produktu lub uslugi zatrzymujemy
22 pu NOT IN ( Select id FROM Uslugi ) AND pu NOT IN ( SELECT id FROM Produkty ))
23 BEGIN
24 ROLLBACK
25 RAISERROR( ' Brak produktu lub uslugi ', 21, 1 )
26 END
27GO
28
29GO
30ALTER TRIGGER TRIGGER_FAKTURA ON Faktury
31INSTEAD OF INSERT
32 AS INSERT INTO Faktury --dodajemy jesli produkt lub usluga jest poprawnie okreslone
33 SELECT inserted.* FROM inserted WHERE
34 pu IN ( SELECT id FROM Uslugi ) OR pu IN ( SELECT id FROM Produkty )
35GO