Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- --Gr. A
- --Data: 2017-05-24
- --Imie: Mikołaj
- --Nazwisko: Błaszczyk
- --Semestr: 2
- --Specjalność: Informatyka
- --2A.1. Dana jest tabela dane(id_dane,liczba).
- --Napisać funkcję posiadającą jeden parametr p_liczba i zwracającą ilość liczb
- --zadanych przez wartość parametru znajdujących się w tabeli dane.
- --Etap 1: Utwórz tabelę dane i dodaj 10 przykładowych rekordów.
- --DROP TABLE dane;
- CREATE TABLE dane(
- id_dane INT IDENTITY(1,1) PRIMARY KEY,
- liczba INT NOT NULL,
- );
- GO
- insert into dane ( liczba) values ('1231');
- insert into dane ( liczba) values ('1234');
- insert into dane ( liczba) values ('1235');
- insert into dane ( liczba) values ('1236');
- insert into dane ( liczba) values ('1237');
- insert into dane ( liczba) values ('1238');
- insert into dane ( liczba) values ('1239');
- insert into dane ( liczba) values ('12310');
- insert into dane ( liczba) values ('12311');
- insert into dane ( liczba) values ('12312');
- --Etap 2: Utwórz funkcję.
- CREATE FUNCTION dbo.funkcja(
- @p_liczba INT
- )
- RETURNS INT
- AS
- BEGIN
- RETURN (SELECT COUNT(*) FROM dane WHERE liczba = @p_liczba)
- END
- --Etap 3: Udowodnij, że utworzona funkcja działa.
- SELECT dbo.funkcja(1235) AS ILE;
- --2A.2. Napisać procedurę posiadającą dwa parametry będące liczbami
- --naturalnymi: p_liczba_od i p_liczba_do.
- --Procedura ma dodać do tabeli dane wszystkie liczby naturalne począwszy
- --od p_liczba_od, a skończywszy na p_liczba_do.
- --Etap 1: Utwórz procedurę.
- --DROP PROCEDURE liczba;
- CREATE PROCEDURE liczba
- @p_liczba_od INT,
- @p_liczba_do INT
- AS
- BEGIN
- WHILE @p_liczba_od <= @p_liczba_do
- BEGIN
- INSERT INTO dane(liczba) VALUES (@p_liczba_od)
- SET @p_liczba_od += 1
- END
- END
- --Etap 2: Udowodnij, że utworzona procedura działa.
- EXEC liczba 1, 3;
- SELECT * FROM dane;
- --3A.3 Napisać wyzwalacz uniemożliwiający modyfikację liczby w tabeli dane.
- --Etap 1: Utwórz wyzwalacz.
- DROP TRIGGER danewyz
- CREATE TRIGGER danewyz ON dane
- FOR UPDATE
- AS
- BEGIN
- RAISERROR('!!!NIE MOZESZ MODYFIKOWAC TABELI DANE!!!',1,2)
- ROLLBACK
- END
- --Etap 2: Udowodnij, że utworzony wyzwalacz działa.
- UPDATE dane
- SET liczba = '211' WHERE id_dane = 1;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement