· 9 years ago · Jan 25, 2017, 06:14 PM
1-----------1------------------------
2DECLARE PRZED_CUR CURSOR FOR SELECT idprzedmiot, przedmiot from Przedmiot;
3DECLARE @przedmiot VARCHAR(128), @idprzedmiot INT, @count INT;
4OPEN PRZED_CUR;
5FETCH NEXT FROM Przed_cur INTO @idprzedmiot, @przedmiot;
6WHILE @@FETCH_STATUS = 0
7BEGIN
8SELECT @COUNT = COUNT(1) FROM OCENA WHERE IdPrzedmiot =@idprzedmiot;
9PRINT @przedmiot + ' wsytawiono ocen: ' + CAST(@count as Varchar)
10FETCH NEXT FROM Przed_cur INTO @idprzedmiot, @przedmiot;
11END;
12CLOSE Przed_cur;
13DEALLOCATE Przed_cur;
14
15------------2---------------
16CREATE TABLE PUBLIKACJE (
17 IDPOZYCJA INT not null IDENTITY(1,1) PRIMARY KEY,
18 TYTUL VARCHAR(128),
19 DATAPUBLIKACJI DATE,
20 IDOSOBA int FOREIGN KEY REFERENCES OSOBA(IdOsoba)
21 )
22
23------------3-------------------
24GO
25CREATE PROCEDURE Add_pub @imie Varchar(32), @nazwisko Varchar(62), @data DATE, @TITLE VARCHAR(128)
26AS
27IF NOT EXISTS (SELECT 1 FROM OSOBA WHERE IMIE = @imie AND Nazwisko = @nazwisko)
28 BEGIN
29 INSERT INTO Osoba(Imie,Nazwisko)
30 VALUES(@imie,@nazwisko)
31 END
32DECLARE @osoba_zm int;
33SELECT @osoba_zm = IdOsoba FROM OSOBA WHERE IMIE = @imie AND Nazwisko = @nazwisko
34INSERT INTO PUBLIKACJE(TYTUL,DATAPUBLIKACJI,IDOSOBA)
35values(@TITLE,@data,@osoba_zm)
36
37---------------4---------------------
38GO
39ALTER TABLE osoba ADD LP INT NOT NULL DEFAULT 0;
40
41GO
42CREATE TRIGGER Add_pub ON PUBLIKACJE FOR INSERT
43AS
44 DECLARE @IDOSOBA INT;
45 SELECT @IDOSOBA = IDOSOBA FROM inserted;
46 UPDATE OSOBA SET LP = LP +1 WHERE IdOsoba = @IDOSOBA;