Advertisement
Artcik

wuiadomo

May 25th, 2017
99
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.21 KB | None | 0 0
  1. --Gr. A
  2. --Data: 2017-05-24
  3. --Imie: Mikołaj
  4. --Nazwisko: Błaszczyk
  5. --Semestr: 2
  6. --Specjalność: Informatyka
  7.  
  8. --2A.1. Dana jest tabela dane(id_dane,liczba).
  9. --Napisać funkcję posiadającą jeden parametr p_liczba i zwracającą ilość liczb
  10. --zadanych przez wartość parametru znajdujących się w tabeli dane.
  11.  
  12. --Etap 1: Utwórz tabelę dane i dodaj 10 przykładowych rekordów.
  13.  
  14. --DROP TABLE dane;
  15.  
  16. CREATE TABLE dane(
  17. id_dane INT IDENTITY(1,1) PRIMARY KEY,
  18. liczba INT NOT NULL,
  19. );
  20. GO
  21.  
  22. insert into dane ( liczba) values ('1231');
  23. insert into dane ( liczba) values ('1234');
  24. insert into dane ( liczba) values ('1235');
  25. insert into dane ( liczba) values ('1236');
  26. insert into dane ( liczba) values ('1237');
  27. insert into dane ( liczba) values ('1238');
  28. insert into dane ( liczba) values ('1239');
  29. insert into dane ( liczba) values ('12310');
  30. insert into dane ( liczba) values ('12311');
  31. insert into dane ( liczba) values ('12312');
  32.  
  33.  
  34.  
  35. --Etap 2: Utwórz funkcję.
  36.  
  37. CREATE FUNCTION dbo.funkcja(
  38. @p_liczba INT
  39. )
  40. RETURNS INT
  41. AS
  42. BEGIN
  43. RETURN (SELECT COUNT(*) FROM dane WHERE liczba = @p_liczba)
  44. END
  45.  
  46.  
  47.  
  48. --Etap 3: Udowodnij, że utworzona funkcja działa.
  49.  
  50. SELECT dbo.funkcja(1235) AS ILE;
  51.  
  52.  
  53. --2A.2. Napisać procedurę posiadającą dwa parametry będące liczbami
  54. --naturalnymi: p_liczba_od i p_liczba_do.
  55. --Procedura ma dodać do tabeli dane wszystkie liczby naturalne począwszy
  56. --od p_liczba_od, a skończywszy na p_liczba_do.
  57.  
  58. --Etap 1: Utwórz procedurę.
  59.  
  60. --DROP PROCEDURE liczba;
  61.  
  62. CREATE PROCEDURE liczba
  63. @p_liczba_od INT,
  64. @p_liczba_do INT
  65.  
  66. AS
  67. BEGIN
  68. WHILE @p_liczba_od <= @p_liczba_do
  69. BEGIN
  70. INSERT INTO dane(liczba) VALUES (@p_liczba_od)
  71. SET @p_liczba_od += 1
  72. END
  73. END
  74.  
  75. --Etap 2: Udowodnij, że utworzona procedura działa.
  76.  
  77. EXEC liczba 1, 3;
  78. SELECT * FROM dane;
  79.  
  80. --3A.3 Napisać wyzwalacz uniemożliwiający modyfikację liczby w tabeli dane.
  81.  
  82. --Etap 1: Utwórz wyzwalacz.
  83.  
  84. DROP TRIGGER danewyz
  85.  
  86. CREATE TRIGGER danewyz ON dane
  87. FOR UPDATE
  88. AS
  89. BEGIN
  90. RAISERROR('!!!NIE MOZESZ MODYFIKOWAC TABELI DANE!!!',1,2)
  91. ROLLBACK
  92. END
  93.  
  94. --Etap 2: Udowodnij, że utworzony wyzwalacz działa.
  95.  
  96. UPDATE dane
  97. SET liczba = '211' WHERE id_dane = 1;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement