Advertisement
Guest User

Untitled

a guest
Dec 17th, 2018
74
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
T-SQL 5.65 KB | None | 0 0
  1. USE RomanianGouverment
  2. GO
  3. --
  4. ---CREATING VIEWS AND INSERT INTO VIEW TABLE
  5. CREATE OR ALTER VIEW CitiesView
  6. AS
  7.     SELECT DISTINCT city
  8.     FROM Addresses
  9. GO
  10. CREATE OR ALTER VIEW CitiesWithSchoolView
  11. AS
  12.     SELECT Addr.city, Sch.name
  13.     FROM Addresses Addr INNER JOIN Schools Sch on Addr.addid = Sch.addid
  14. GO
  15. CREATE OR ALTER VIEW BiggestGradeBySchoolView
  16. AS
  17.     SELECT Sch.schid, MAX(St.gdp) AS Grade
  18.     FROM Schools Sch INNER JOIN Studies St on Sch.schid = St.schid
  19.     GROUP BY Sch.schid
  20. GO
  21.  
  22.  
  23. INSERT Views
  24. VALUES
  25.     ('CitiesView'),
  26.     ('CitiesWithSchoolView'),
  27.     ('BiggestGradeBySchoolView')
  28. GO
  29.  
  30.  
  31. -----INSERT INTO TABLES TABLE
  32.  
  33. INSERT INTO Tables
  34. VALUES
  35.     ('Addresses'),
  36.     ('Schools'),
  37.     ('Studies')
  38. GO
  39.  
  40. -----INSERT INTO TESTS TABLE
  41.  
  42. INSERT INTO Tests
  43. VALUES
  44.     ('insertTest'),
  45.     ('deleteTest'),
  46.     ('selectViewTest')
  47. GO
  48.  
  49. ----INSERT INTO TestTables
  50.  
  51. INSERT INTO TestTables
  52.     (TestID,TableID,NoOfRows,Position)
  53. VALUES
  54.     (1, 1, 1000, 1),
  55.     (1, 2, 1000, 2),
  56.     (1, 3, 1000, 3),
  57.     (2, 1, 1000, 3),
  58.     (2, 2, 1000, 2),
  59.     (2, 3, 1000, 1)
  60. GO
  61.  
  62. -----INSERT INTO TestViews
  63.  
  64. INSERT INTO TestViews
  65.     (TestID,ViewID)
  66. VALUES
  67.     (3, 1),
  68.     (3, 2),
  69.     (3, 3)
  70. GO
  71.  
  72. ----CREATE INSERT PROCEDURES
  73.  
  74. CREATE OR ALTER PROC testAddresses
  75. AS
  76. -----DECLARING THE TIME VARIABLES
  77. DECLARE @start datetime
  78. DECLARE @viewStart datetime
  79. DECLARE @end datetime
  80. SET @start = SYSDATETIME()
  81. ------INSERTING INTO THE TestRuns
  82. DECLARE @id int
  83. INSERT TestRuns
  84. VALUES
  85.     ('AddressTest', @start, @start)
  86. SET @id= SCOPE_IDENTITY()
  87. -----STARTING TO INSERT
  88. DECLARE @i INT
  89. DECLARE @limit INT
  90. SELECT TOP 1
  91.     @limit = NoOfRows
  92. FROM TestTables
  93. WHERE TableID = 1
  94. SET @i = 0
  95. WHILE @i < @limit
  96.  BEGIN
  97.     INSERT INTO Addresses
  98.         (conty,city,street,nr)
  99.     VALUES
  100.         ('TEST', 'TEST', 'TEST', @i)
  101.     SET @i=@i+1
  102. END
  103. ----STARTING TO DELETE
  104. DELETE FROM Addresses WHERE conty LIKE 'TEST'
  105.  
  106. ---INSERTING INTO TestRunTables
  107. SET @viewStart = SYSDATETIME()
  108. INSERT TestRunTables
  109.     (TestRunID,TableID,StartAt,EndAt)
  110. VALUES
  111.     (@id, 1, @start, @viewStart)
  112. -----STARTING VIEW AND INSERTING INTO TestRunViews
  113. SELECT *
  114. FROM CitiesView
  115. SET @end=SYSDATETIME()
  116. INSERT INTO TestRunViews
  117.     (TestRunID,ViewID,StartAt,EndAt)
  118. VALUES
  119.     (@id, 1, @viewStart, @end)
  120. --UPDATING THE EndAt in the TestRuns
  121. UPDATE TestRuns
  122. SET EndAt = @end
  123. WHERE TestRunID = @id
  124.  
  125. GO
  126.  
  127. CREATE OR ALTER PROC testSchools
  128. AS
  129. -----DECLARING THE TIME VARIABLES
  130. DECLARE @start datetime
  131. DECLARE @viewStart datetime
  132. DECLARE @end datetime
  133. SET @start = SYSDATETIME()
  134. ------INSERTING INTO THE TestRuns
  135. DECLARE @id int
  136. INSERT TestRuns
  137. VALUES
  138.     ('SchoolTest', @start, @start)
  139. SET @id = SCOPE_IDENTITY()
  140. -----STARTING TO INSERT
  141. DECLARE @i INT
  142. SET @i = 0
  143. ------FOREIGN KEY INIT
  144. DECLARE @fk INT
  145. SELECT TOP 1
  146.     @fk = addid
  147. From Addresses
  148. DECLARE @limit INT
  149. SELECT TOP 1
  150.     @limit = NoOfRows
  151. FROM TestTables
  152. WHERE TableID = 2
  153. ------
  154. WHILE @i < @limit
  155.  BEGIN
  156.     INSERT INTO Schools
  157.         (name,est,rank,level,addid)
  158.     VALUES
  159.         ('TEST', GETDATE(), @i, 'TEST', @fk)
  160.     SET @i=@i+1
  161. END
  162. ----STARTING TO DELETE
  163. DELETE FROM Schools WHERE name LIKE 'TEST'
  164.  
  165. ---INSERTING INTO TestRunTables
  166. SET @viewStart = SYSDATETIME()
  167. INSERT TestRunTables
  168.     (TestRunID,TableID,StartAt,EndAt)
  169. VALUES
  170.     (@id, 2, @start, @viewStart)
  171. -----STARTING VIEW AND INSERTING INTO TestRunViews
  172. SELECT *
  173. FROM CitiesWithSchoolView
  174. SET @end=SYSDATETIME()
  175. INSERT INTO TestRunViews
  176.     (TestRunID,ViewID,StartAt,EndAt)
  177. VALUES
  178.     (@id, 2, @viewStart, @end)
  179. --UPDATING THE EndAt in the TestRuns
  180. UPDATE TestRuns
  181. SET EndAt = @end
  182. WHERE TestRunID = @id
  183.  
  184. GO
  185. -------------------------------------
  186. CREATE OR ALTER PROC testStudies
  187. AS
  188. DECLARE @id INT
  189. ------CREATING THIS TO HAVE THE POSIBILITY TO MAKE THE INSERTION
  190. DECLARE @i INT
  191. SET @i = 0
  192. ------FOREIGN KEY INIT
  193. DECLARE @fk INT
  194. SELECT TOP 1
  195.     @fk = addid
  196. FROM Addresses
  197. WHILE @i < 1000
  198.  BEGIN
  199.     INSERT INTO Schools
  200.         (name,est,rank,level,addid)
  201.     VALUES
  202.         ('TEST', GETDATE(), @i, 'TEST', @fk)
  203.     SET @i = @i+1
  204. END
  205. SELECT TOP 1
  206.     @fk = schid
  207. FROM Schools
  208. ORDER BY schid DESC
  209. DECLARE @fk1 INT
  210. SELECT TOP 1
  211.     @fk1 = pid
  212. FROM Politicians
  213. -----DECLARING THE TIME VARIABLES
  214. DECLARE @start datetime
  215. DECLARE @viewStart datetime
  216. DECLARE @end datetime
  217. SET @start = SYSDATETIME()
  218. ------INSERTING INTO THE TestRuns
  219. INSERT TestRuns
  220. VALUES
  221.     ('Studies Test', @start, @start)
  222. SET @id = SCOPE_IDENTITY()
  223. -----STARTING TO INSERT
  224. SET @i = 0
  225. DECLARE @limit INT
  226. SELECT TOP 1
  227.     @limit = NoOfRows
  228. FROM TestTables
  229. WHERE TableID = 3
  230. WHILE @i < @limit
  231.  BEGIN
  232.     INSERT INTO Studies
  233.         (schid,pid,profile,gdp,yog)
  234.     VALUES
  235.         (@fk, @fk1, 'TEST', 1, 1990)
  236.     SET @fk = @fk - 1
  237.     SET @i=@i+1
  238. END
  239. ----STARTING TO DELETE
  240. DELETE FROM Studies WHERE profile LIKE 'TEST'
  241.  
  242. ---INSERTING INTO TestRunTables
  243. SET @viewStart = SYSDATETIME()
  244. INSERT TestRunTables
  245.     (TestRunID,TableID,StartAt,EndAt)
  246. VALUES
  247.     (@id, 3, @start, @viewStart)
  248. -----STARTING VIEW AND INSERTING INTO TestRunViews
  249. SELECT *
  250. FROM CitiesView
  251. SET @end=SYSDATETIME()
  252. INSERT INTO TestRunViews
  253.     (TestRunID,ViewID,StartAt,EndAt)
  254. VALUES
  255.     (@id, 3, @viewStart, @end)
  256. --UPDATING THE EndAt in the TestRuns
  257. UPDATE TestRuns
  258. SET EndAt = @end
  259. WHERE TestRunID = @id
  260. DELETE FROM Schools WHERE name LIKE 'TEST'
  261.  
  262. GO
  263. ------EXECUTING TESTS
  264. EXEC testAddresses
  265. EXEC testSchools
  266. EXEC testStudies
  267. ----SEEING THE RESULTS
  268. SELECT *
  269. FROM TestRuns
  270. SELECT *
  271. FROM TestRunTables
  272. SELECT *
  273. FROM TestRunViews
  274. SELECT *
  275. FROM Addresses
  276. DELETE FROM TestRuns
  277. DELETE FROM TestRunTables
  278. DELETE FROM TestRunViews
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement