Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /* CREATE TABLE Dzial (
- id_dzialu int identity
- constraint pk_dzial primary key,
- nazwa nvarchar(20) not null,
- );
- CREATE TABLE Stanowisko (
- id_stanowiska int identity
- constraint pk_stanowisko primary key,
- id_dzialu int not null constraint
- fk_stanowisko_dzial foreign key references Dzial(id_dzialu),
- nazwa nvarchar(20) not null,
- pensja money not null
- );
- CREATE TABLE Pracownik (
- id_pracownika int identity
- constraint pk_pracownik primary key,
- id_stanowiska int not null constraint
- fk_pracownik_stanowisko foreign key references Stanowisko(id_stanowiska),
- imie nvarchar(20) not null,
- nazwisko nvarchar(20) not null,
- telefon nvarchar(9) not null,
- miasto nvarchar(20) not null,
- pesel nvarchar(11) not null
- );
- CREATE TABLE Zamowienie (
- id_zamowienia int identity
- constraint pk_zamowienie primary key,
- nazwa_zamowienia nvarchar(20) not null,
- start_zamowienia DATETIME DEFAULT getdate() not null,
- koniec_zamowienia DATE
- );
- CREATE TABLE Pracownik_zamowienie (
- id_pracownik_zamowienie int identity
- constraint pk_pracownik_zamowienie primary key,
- id_pracownika int not null constraint
- fk_pracownik_zamowienie_pracownik foreign key
- references Pracownik(id_pracownika),
- id_zamowienie int not null constraint
- fk_pracownik_zamowienie_zamowienie foreign key
- references Zamowienie(id_zamowienia)
- );
- CREATE TABLE Klient (
- id_klienta int identity
- constraint pk_klient primary key,
- imie nvarchar(20),
- nazwisko nvarchar(20),
- adres nvarchar(20),
- nip nvarchar(20) not null,
- );
- CREATE TABLE Klient_zamowienie(
- id_klient_zamowienie int identity
- constraint pk_klient_zamowienie primary key,
- id_klienta int not null constraint
- fk_klient_zamowienie_klient foreign key
- references Klient(id_klienta),
- id_zamowienia int not null constraint
- fk_klient_zamowienie_zamowienie foreign key
- references Zamowienie(id_zamowienia)
- );
- CREATE PROCEDURE Dzial_dodajDzial ( @nazwa_dzialu nvarchar(20) )
- AS
- INSERT INTO Dzial(nazwa)
- VALUES (@nazwa_dzialu)
- GO
- CREATE PROCEDURE Stanowisko_dodajStanowisko ( @nazwa_dzialu nvarchar(20), @nazwa_stanowiska nvarchar(20), @pensja money )
- AS
- DECLARE @id_dzialu int;
- SELECT @id_dzialu = d.id_dzialu
- FROM Dzial d
- WHERE d.nazwa = @nazwa_dzialu
- INSERT INTO Stanowisko(id_dzialu, pensja, nazwa)
- VALUES(@id_dzialu, @pensja, @nazwa_dzialu)
- GO
- CREATE PROCEDURE Pracownik_dodajPracownika ( @id_stanowiska int, @imie nvarchar(20), @nazwisko nvarchar(20), @telefon nvarchar(9), @miasto nvarchar(20), @pesel nvarchar(11) )
- AS
- INSERT INTO Pracownik
- VALUES(@id_stanowiska, @imie, @nazwisko, @telefon, @miasto, @pesel)
- CREATE PROCEDURE Zamowienie_dodajZamowienie ( @nazwa_zamowienia nvarchar(20) )
- AS
- INSERT INTO Zamowienie(nazwa_zamowienia)
- VALUES(@nazwa_zamowienia)
- GO
- CREATE PROCEDURE Pracownik_zamowienie_przypiszZamowienie ( @pesel nvarchar(11), @nazwa_zamowienia nvarchar(20) )
- AS
- DECLARE @id_pracownika int;
- DECLARE @id_zamowienia int;
- SELECT @id_pracownika = p.id_pracownika
- FROM Pracownik p
- WHERE p.pesel = @pesel
- SELECT @id_zamowienia = z.id_zamowienia
- FROM Zamowienie z
- WHERE z.nazwa_zamowienia = @nazwa_zamowienia
- INSERT INTO Pracownik_zamowienie(id_pracownika, id_zamowienie)
- VALUES (@id_pracownika, @id_zamowienia)
- GO
- CREATE PROCEDURE Klient_dodajKlienta ( @imie nvarchar(20), @nazwisko nvarchar(20), @adres nvarchar(20), @nip nvarchar(20))
- AS
- INSERT INTO Klient
- VALUES(@imie, @nazwisko, @adres, @nip)
- GO
- CREATE PROCEDURE Klient_zamowienie_przypiszZamowienie ( @nip nvarchar(20), @nazwa_zamowienia nvarchar(20) )
- AS
- DECLARE @id_klienta int;
- DECLARE @id_zamowienia int;
- SELECT @id_klienta = k.id_klienta
- FROM Klient k
- WHERE k.nip = @nip
- SELECT @id_zamowienia = z.id_zamowienia
- FROM Zamowienie z
- WHERE z.nazwa_zamowienia = @nazwa_zamowienia
- INSERT INTO Klient_zamowienie (id_klienta, id_zamowienia)
- VALUES(@id_klienta, @id_zamowienia)
- GO
- create TRIGGER Pracownik_sprawdzPracownika ON Pracownik
- FOR INSERT
- AS
- IF EXISTS(SELECT 1 FROM Pracownik p
- JOIN inserted i on i.pesel = p.pesel
- WHERE p.pesel = i.pesel)
- BEGIN
- print 'nie mozna dodac pracownika, pracownik z takim peselem juz istnieje!'
- ROLLBACK TRAN
- END
- GO
- */
- CREATE TRIGGER Pracownik_sprawdzKlienta ON Klient
- FOR INSERT
- AS
- IF EXISTS(SELECT 1
- FROM Klient k
- JOIN inserted i on i.nip = k.nip
- WHERE i.nip = k.nip)
- BEGIN
- print 'nie mozna dodac klienta,klient z takim nipem juz istenieje!'
- ROLLBACK TRAN
- END
- IF EXISTS(SELECT 1
- FROM inserted i
- WHERE LEN(i.NIP) < 10
- )
- BEGIN
- print 'Podano za krotki nip'
- ROLLBACK TRAN
- END
- GO
- CREATE TRIGGER Stanowisko_sprawdzPensje ON Stanowisko
- FOR INSERT, UPDATE
- AS
- IF EXISTS(SELECT 1
- FROM inserted i
- WHERE i.pensja < 0)
- BEGIN
- print 'nie mozna wstawic nowej pensji, ponieważ jest ujemna!'
- ROLLBACK TRAN
- END
- GO
- CREATE TRIGGER Zamowienie_spradzKoniecZamowienia on Zamowienie
- FOR UPDATE
- AS
- IF EXISTS(SELECT 1
- FROM inserted i
- JOIN deleted d on d.start_zamowienia = i.start_zamowienia
- WHERE d.koniec_zamowienia IS NOT NULL)
- BEGIN
- print 'Zamowienie to zostalo zakonczone wczesniej, nie mozna zamienic daty!'
- ROLLBACK TRAN
- END
- GO
- CREATE TRIGGER Klient_usunKlienta on Klient
- FOR DELETE
- AS
- IF EXISTS(SELECT 1
- FROM deleted d
- JOIN Klient_zamowienie kz on kz.id_klienta = d.id_klienta
- JOIN Zamowienie z on z.id_zamowienia = kz.id_zamowienia
- WHERE z.koniec_zamowienia IS NOT NULL)
- BEGIN
- print 'Klient posiada realizowane zamówienia,nie można go usunąć!'
- ROLLBACK TRAN
- END
- GO
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement