Advertisement
Guest User

Untitled

a guest
Mar 5th, 2015
219
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
T-SQL 3.79 KB | None | 0 0
  1. CREATE TABLE Student (
  2.   login    CHAR(6) PRIMARY KEY,
  3.   fname    VARCHAR(30) NOT NULL,
  4.   lname    VARCHAR(50) NOT NULL,
  5.   email    VARCHAR(50) NOT NULL
  6.   );
  7.  
  8. CREATE PROCEDURE AddStudent(
  9. @p_login CHAR(6),
  10. @p_fname VARCHAR(30),
  11. @p_lname VARCHAR(50),
  12. @p_email VARCHAR(50))
  13. AS
  14. BEGIN
  15.     INSERT INTO Student(login,fname,lname,email)
  16.     VALUES(@p_login,@p_fname,@p_lname,@p_email)
  17. END
  18.  
  19. EXEC AddStudent 'KRA','Jakub','Kraus','email'
  20.  
  21.  
  22.  
  23. CREATE PROCEDURE PAddStudent(
  24. @p_login CHAR(6),
  25. @p_fname VARCHAR(30),
  26. @p_lname VARCHAR(50),
  27. @p_email VARCHAR(50),
  28. @out_ VARCHAR(10) out
  29. )
  30.  
  31. AS
  32. BEGIN TRANSACTION
  33. BEGIN TRY
  34.     INSERT INTO Student(login,fname,lname,email)
  35.     VALUES(@p_login,@p_fname,@p_lname,@p_email)
  36.     SET @out = 'OK'
  37.     COMMIT
  38. END TRY
  39. BEGIN CATCH
  40.     SET @out = 'ERROR'
  41.     ROLLBACK
  42. END CATCH
  43.  
  44. BEGIN
  45.  
  46. DECLARE @out_ VARCHAR(10)
  47. EXEC PAddStudent 'CCCC','Jakub','Somik','email11', @out_ out
  48.  
  49. END
  50.  
  51.  
  52.  
  53.  
  54.  
  55. CREATE TABLE Teacher (
  56.   login CHAR(6) NOT NULL PRIMARY KEY,
  57.   fname VARCHAR(30) NOT NULL,
  58.   lname VARCHAR(50) NOT NULL,
  59.   email VARCHAR(50) NOT NULL,
  60.   department INT NOT NULL,
  61.   specialization VARCHAR(30) NULL);
  62.  
  63.  
  64. ALTER PROCEDURE StudentBecomeTeacher(
  65. @p_login CHAR(6),
  66. @p_department INT
  67. )AS
  68.  
  69. BEGIN TRANSACTION
  70. BEGIN TRY
  71. DECLARE @v_login CHAR(6)
  72. DECLARE @v_fname VARCHAR(30)
  73. DECLARE @v_lname VARCHAR(50)
  74. DECLARE @v_email VARCHAR(50)
  75.  
  76. select @v_login = login FROM Student WHERE Student.login = @p_login
  77. select @v_fname = fname FROM Student WHERE Student.login = @p_login
  78. select @v_lname = lname FROM Student WHERE Student.login = @p_login
  79. select @v_email = email FROM Student WHERE Student.login = @p_login
  80.  
  81. INSERT INTO TEACHER(login, fname,lname,email,department)
  82. VALUES(@v_login,@v_fname,@v_lname,@v_email,@p_department)
  83. COMMIT
  84. END TRY
  85. BEGIN CATCH
  86.     print 'Error'
  87.     ROLLBACK
  88. END CATCH
  89.  
  90. EXEC StudentBecomeTeacher 'SOM', 99
  91.  
  92.  
  93. CREATE TABLE Student (
  94.   login    CHAR(6) PRIMARY KEY,
  95.   fname    VARCHAR(30) NOT NULL,
  96.   lname    VARCHAR(50) NOT NULL,
  97.   email    VARCHAR(50) NOT NULL,
  98.   tallness INT NOT NULL);
  99.  
  100. CREATE PROCEDURE AddStudent2(
  101. @p_fname VARCHAR(30),
  102. @p_lname VARCHAR(50),
  103. @p_tallness INT
  104. )
  105. AS
  106. BEGIN
  107. DECLARE @v_login CHAR(6)
  108. DECLARE @v_email VARCHAR(50)
  109. SET @v_login = SUBSTRING(@p_lname,1,3) + '000'
  110. SET @v_email = @v_login + '@vsb.cz'
  111.  
  112. INSERT INTO Student(login, fname, lname, email, tallness)
  113. VALUES(@v_login, @p_fname, @p_lname, @v_email, @p_tallness)
  114. END
  115.  
  116. EXEC AddStudent2 'Jakub', 'Pepa', 180
  117.  
  118.  
  119. ALTER TABLE Student
  120. ADD isTall VARCHAR(1) NULL
  121.  
  122.  
  123. ALTER PROCEDURE IsStudentTall(
  124. @p_login CHAR(6)
  125. )
  126. AS
  127. BEGIN
  128. DECLARE @v_tallness INT
  129. DECLARE @v_AVG INT
  130. SELECT @v_tallness = tallness FROM Student WHERE @p_login = login
  131. SELECT @v_AVG = AVG(tallness) FROM Student
  132. if(@v_tallness >= @v_AVG)
  133.     UPDATE STUDENT SET isTall = 1 WHERE login = @p_login
  134. else if(@v_tallness < @v_AVG)
  135.     UPDATE STUDENT SET isTall = 0 WHERE login = @p_login
  136.  
  137. END
  138.  
  139. EXEC IsStudentTall 'Pep000'
  140.  
  141.  
  142. ALTER FUNCTION LoginExist(@p_login CHAR(6))
  143. RETURNS VARCHAR(1)
  144. AS
  145. BEGIN
  146.     DECLARE @result VARCHAR(1)
  147.     DECLARE @v_login CHAR(6)
  148.     SELECT @v_login = login FROM STUDENT WHERE login = @p_login
  149.     IF(@v_login is null)
  150.         SET @result = '0'
  151.     ELSE
  152.         SET @result = '1'
  153.    
  154.     RETURN @result
  155. END
  156.  
  157.  
  158. ALTER PROCEDURE AddStudent22(
  159. @p_fname VARCHAR(30),
  160. @p_lname VARCHAR(50),
  161. @p_tallness INT
  162. )
  163. AS
  164. BEGIN
  165. DECLARE @v_login CHAR(6)
  166. DECLARE @v_email VARCHAR(50)
  167. DECLARE @v_count INT = 0
  168.  
  169. SET @v_login = ''
  170.  
  171. WHILE DBO.LoginExist(@v_login) != '0'
  172. BEGIN
  173. SET @v_login = SUBSTRING(@p_lname,1,3) + '00' + CAST(@v_count AS VARCHAR(5))
  174. SET @v_count = @v_count + 1
  175. END
  176. PRINT @v_login
  177. SET @v_email = @v_login + '@vsb.cz'
  178. INSERT INTO Student(login, fname, lname, email, tallness)
  179. VALUES(@v_login, @p_fname, @p_lname, @v_email, @p_tallness)
  180. END
  181.  
  182. EXEC AddStudent22 'Filip', 'Kral', 180
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement