andreybotanic

DMLFill

Mar 5th, 2017
27
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
T-SQL 0.74 KB | None | 0 0
  1. USE tempdb;
  2. GO
  3. IF OBJECT_ID('DMLfill', 'P') IS NOT NULL
  4.   DROP PROC DMLfill
  5. GO
  6. CREATE PROC DMLfill
  7.   @StudentCount INT = 100,
  8.   @GroupCount INT = 10,
  9.   @ScoreCount INT = 100
  10. AS
  11.  
  12. DELETE FROM Student;
  13. DELETE FROM GroupStudent;
  14.  
  15. ;WITH CTE AS(
  16.   SELECT 1 N
  17.   UNION ALL
  18.   SELECT N+1 FROM CTE WHERE N<@GroupCount
  19. )
  20.  
  21. INSERT GroupStudent(Number)
  22. SELECT CONCAT('GROUP #', N)
  23. FROM CTE
  24. OPTION(MAXRECURSION 30000)
  25.  
  26. ;WITH CTE AS(
  27.   SELECT 1 N
  28.   UNION ALL
  29.   SELECT N+1 FROM CTE WHERE N<@StudentCount
  30. )
  31.  
  32. INSERT Student(GroupId, FIO)
  33. SELECT GS.id, CONCAT('ФИО|', GS.id, '|', N)
  34. FROM CTE
  35.   JOIN (
  36.     SELECT ROW_NUMBER()OVER(ORDER BY id)GN, *
  37.     FROM GroupStudent
  38.   ) GS ON GS.GN = (N-1)%@GroupCount + 1
  39.  
  40. OPTION(MAXRECURSION 30000)
Advertisement
Add Comment
Please, Sign In to add comment