Advertisement
AntoSVK

SQL - DBS - cv5

Nov 27th, 2014
229
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
SQL 2.16 KB | None | 0 0
  1. USE MI_Antalik_Dominik
  2. GO
  3.  
  4. --5.1--
  5. CREATE TABLE student_zaloha (
  6. id_student INT,
  7. meno VARCHAR (50),
  8. priezvisko VARCHAR (50)
  9. CONSTRAINT pk_student_zaloha PRIMARY KEY (id_student)
  10. )
  11.  
  12. CREATE TABLE znamky_zaloha (
  13. id_student INT,
  14. id_predmet INT,
  15. body INT,
  16. CONSTRAINT pk_znamky_zaloha PRIMARY KEY (id_student,id_predmet)
  17. )
  18.  
  19. --5.2--
  20. CREATE PROCEDURE zmaz_studenta
  21. @id_stud INT                    --deklarovanie premennej, vstup
  22. AS
  23. BEGIN
  24.     INSERT INTO student_zaloha
  25.     SELECT * FROM student WHERE id_student=@id_stud
  26.     INSERT INTO znamky_zaloha
  27.     SELECT z.id_student, z.id_predmet, z.body FROM znamka z
  28.     WHERE z.id_student=@id_stud
  29.     DELETE FROM znamka WHERE znamka.id_student=@id_stud  -- alebo 'delete *'. To isté v tomto prípade
  30.     DELETE FROM student WHERE student.id_student=@id_stud
  31. END
  32.  
  33. --execute=exec
  34. EXECUTE zmaz_studenta 1
  35.  
  36. SELECT * FROM student
  37. SELECT * FROM znamka
  38. SELECT * FROM Student_zaloha
  39. SELECT * FROM Znamky_Zaloha
  40.  
  41.  
  42. --5.3-- vnorené príkazy
  43. CREATE PROCEDURE vloz_vyucujuceho
  44. @meno VARCHAR (50),
  45. @priezvisko VARCHAR (50),
  46. @predmet VARCHAR (50)
  47. AS
  48. BEGIN
  49.     DECLARE @id_pred INT
  50.     SELECT @id_pred=p.id_predmet FROM predmet p WHERE p.nazov=@predmet
  51.     IF (@id_pred IS NULL)
  52.     BEGIN
  53.         INSERT INTO predmet VALUES (@predmet)
  54.         SET @id_pred=IDENT_CURRENT('predmet')
  55.     END
  56.     DECLARE @id_uc INT
  57.     SELECT @id_uc=u.id_ucitel FROM ucitel u WHERE u.meno=@meno AND u.priezvisko=@priezvisko
  58.     IF (@id_uc IS NULL)
  59.     BEGIN
  60.         INSERT INTO ucitel (meno, priezvisko) VALUES (@meno,@priezvisko)
  61.         SET @id_uc=IDENT_CURRENT('ucitel')
  62.     END
  63.     INSERT INTO vyucujuci (id_ucitel,id_predmet) VALUES (@id_uc,@id_pred)
  64. END
  65.  
  66. EXECUTE vloz_vyucujuceho 'Jan','Novák','Tělocvik'
  67.  
  68. --5.4--
  69. CREATE PROCEDURE save_student
  70. @meno VARCHAR (50),
  71. @priezvisko VARCHAR (50),
  72. @id_student INT OUTPUT
  73. AS
  74. BEGIN
  75.     SET @id_student= (SELECT top 1 id_student FROM student s WHERE s.meno=@meno AND s.priezvisko=@priezvisko)
  76.     IF (@id_student IS NULL)
  77.     BEGIN
  78.         INSERT INTO student (meno, priezvisko) VALUES (@meno,@priezvisko)
  79.         SET @id_student=@@IDENTITY
  80.     END
  81. END
  82.  
  83. DECLARE @id_student INT
  84. EXECUTE save_student 'František','Koudelka',@id_student output
  85. print @id_student
  86.  
  87. DROP PROCEDURE save_student
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement