Baza danych RemBud

 

Zarchiwizowaną bazę danych RemBud dla SQL Servwera 2016 można pobrać tutaj. Na rysunku 1 przedstawiono diagram bazy danych RemBud.

Rys. 1. Diagram bazy danych RemBud

W bazie danych jest wyzwalacz, który dopisuje do tabeli pozsprzedaz wartości w kolumnach cena_jednostkowa, vat_jednostkowy i rabat_jednostkowy na podstawie danych zawartych w tabelach klienci i produkty. Na listingu1 przedstawiono kod tworzący wyzwalacz.

CREATE TRIGGER [dbo].[dopiszcene]

   ON  [dbo].[pozsprzedaz]

   AFTER  INSERT, UPDATE

AS

BEGIN

       SET NOCOUNT ON; 

       DECLARE @pozycja int

       SET @pozycja = (select idpoz from inserted ) 

       DECLARE @cena numeric(8,2)

       DECLARE @vat numeric(6,2)

       DECLARE @rabat numeric(6,2) 

       SET @cena = (SELECT cena FROM produkty WHERE idproduktu = (SELECT idproduktu from pozsprzedaz WHERE idpoz = @pozycja) )

       SET @vat = (SELECT vat FROM produkty WHERE idproduktu = (SELECT idproduktu from inserted) )

       SET @rabat = (SELECT klienci.rabat FROM klienci                                                                      

                     WHERE idklienta = (select idklienta from nagsprzedaz where nagsprzedaz.nrfaktury = (SELECT nrfaktury FROM inserted)))      

        UPDATE pozsprzedaz SET cena_jednostkowa = @cena, vat_jednostkowy = @vat, rabat_jednostkowy = @rabat  WHERE  idpoz = @pozycja 

END

Listing 1. Kod tworzacy wyzwalacz dopisujący do tabeli pozsprzedaz wartości w kolumnach cena_jednostkowa, vat_jednostkowy i rabat_jednostkowy na podstawie danych zawartych w tabelach klienci i produkt.