Advertisement
warrior98

Untitled

Dec 10th, 2018
101
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
SQL 3.18 KB | None | 0 0
  1. CREATE FUNCTION validare_InsertSolved (@FK_username VARCHAR(50), @FK_id_problema VARCHAR(50))
  2. RETURNS INT AS
  3. BEGIN
  4. IF @FK_username IS NULL OR @FK_id_problema IS NULL OR (EXISTS(SELECT * FROM dbo.SOLVED WHERE FK_username = @FK_username) AND EXISTS(SELECT * FROM dbo.SOLVED WHERE FK_id_problema = @FK_id_problema)) OR NOT EXISTS(SELECT * FROM dbo.PROBLEMS WHERE id_problema = @FK_id_problema) OR NOT EXISTS(SELECT * FROM dbo.STUDENTS WHERE username = @FK_username)
  5.         RETURN 0
  6. RETURN 1
  7. END
  8.  
  9. GO
  10. CREATE PROCEDURE InsertSolved @username VARCHAR(50), @id_problema VARCHAR(50)
  11. AS
  12.  IF dbo.validare_InsertSolved(@username,@id_problema) = 0
  13.   BEGIN
  14.         print 'Cheia dubla a fost introdusa o data, username sau problema nu exista'
  15.   END
  16.   ELSE
  17.   BEGIN
  18.         INSERT INTO dbo.SOLVED
  19.         VALUES(@username,@id_problema)
  20.   END
  21. GO
  22.  
  23.  
  24. CREATE FUNCTION validare_InsertProblema (@id_problema VARCHAR(50), @site VARCHAR(MAX), @dificultate INT)
  25. RETURNS INT AS
  26. BEGIN
  27. IF @id_problema IS NULL OR @site IS NULL OR @dificultate < 0 OR EXISTS(SELECT * FROM dbo.PROBLEMS WHERE id_problema = @id_problema)
  28.     RETURN 0
  29. RETURN 1
  30. END
  31.  
  32. GO
  33. CREATE PROCEDURE InsertProblema @id_problema VARCHAR(50), @site VARCHAR(MAX), @dificultate INT
  34. AS
  35.  IF dbo.validare_InsertProblema(@id_problema,@site,@dificultate) = 0
  36.   BEGIN
  37.         print 'Problema exista in tabel, unele campuri sunt goare, sau dificultatea e negativa'
  38.   END
  39.   ELSE
  40.   BEGIN
  41.         INSERT INTO dbo.PROBLEMS
  42.         VALUES(@id_problema,@site,@dificultate)
  43.   END
  44. GO
  45.  
  46.  
  47.  
  48. CREATE FUNCTION validare_InsertStudent (@username VARCHAR(50), @password VARCHAR(50), @fullname VARCHAR(MAX))
  49. RETURNS INT AS
  50. BEGIN
  51. IF @username IS NULL OR @password IS NULL OR @fullname IS NULL OR EXISTS(SELECT * FROM dbo.STUDENTS WHERE username = @username)
  52.     RETURN 0
  53. RETURN 1
  54. END
  55.  
  56. GO
  57. CREATE PROCEDURE InsertStudent @username VARCHAR(50), @password VARCHAR(50), @fullname VARCHAR(MAX)
  58.  
  59. AS
  60.  IF dbo.validare_InsertStudent(@username,@password,@fullname) = 0
  61.   BEGIN
  62.         print 'Username-ul exista sau ceva e null'
  63.   END
  64.   ELSE
  65.   BEGIN
  66.         INSERT INTO dbo.STUDENTS (username, password, fullname)
  67.         VALUES(@username,@password,@fullname)
  68.   END
  69.  
  70. EXEC InsertStudent 'marean', '1534fd', 'MARIAN marian'
  71. SELECT * FROM STUDENTS
  72.  
  73. EXEC InsertStudent 'andrei', '1534fd', 'andrei 1235'
  74. SELECT * FROM STUDENTS
  75.  
  76. GO
  77. CREATE VIEW [Studenti_Probleme_Rezolvate] AS
  78. SELECT dbo.STUDENTS.username, dbo.STUDENTS.fullname, dbo.PROBLEMS.id_problema
  79. FROM dbo.STUDENTS
  80. JOIN dbo.SOLVED ON (dbo.STUDENTS.username = dbo.SOLVED.FK_username)
  81. JOIN dbo.PROBLEMS ON (dbo.SOLVED.FK_id_problema = dbo.PROBLEMS.id_problema); /*ce echipament are fiecare soldat */
  82.  
  83. GO
  84. SELECT * FROM [Studenti_Probleme_Rezolvate]
  85.  
  86.  
  87. GO
  88. CREATE TRIGGER triggerDelete ON dbo.STUDENTS
  89. FOR DELETE
  90. AS
  91. BEGIN
  92.     SET NOCOUNT ON;
  93.     print 'S-a sters din tabelul Studenti la data:'
  94.     print GETDATE ()
  95. END
  96.  
  97. DELETE FROM STUDENTS WHERE username = 'marean'
  98.  
  99.  
  100.  
  101. GO
  102. CREATE TRIGGER triggerInsert ON dbo.STUDENTS
  103. FOR INSERT
  104. AS
  105. BEGIN
  106.     SET NOCOUNT ON;
  107.     print 'S-a inserat in tabelul STUDENTS la data:'
  108.     print GETDATE ()
  109. END
  110.  
  111.  
  112.  
  113. EXEC InsertProblema 'permutari', 'infoarena', 5
  114.  
  115. EXEC InsertSolved 'andrei', 'permutari'
  116.  
  117. SELECT * FROM SOLVED
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement