ALTER PROCEDURE dbo.sp_PaperLibrary_GenPaperLib
(
@PaperID int,
@ForTK int,
@SubclassID int,
@Numbers int
)
AS
BEGIN
DECLARE @QuestionID int
DECLARE @IsMain int
DECLARE @MainID int
DECLARE @Count int
DELETE dbo.PaperLibrary_Question
WHERE PaperID = @PaperID AND SubclassID = @SubclassID
DECLARE cursor_MainID CURSOR FOR
SELECT ID
FROM Questions
WHERE ForTK = @ForTK AND Useable = 1 AND SubclassID = @SubclassID AND IsMain = 1
ORDER BY NEWID()
OPEN cursor_MainID
SET @Count = 0
Fetch Next From cursor_MainID Into @MainID
WHILE @@FETCH_STATUS = 0
BEGIN
IF @Count < @Numbers
BEGIN
DECLARE cursor_QC CURSOR FOR
SELECT Questions.ID, Questions.SubclassID, Questions.IsMain, Questions.MainID
FROM Questions
WHERE Questions.MainID = @MainID OR Questions.ID = @MainID
OPEN cursor_QC
Fetch Next From cursor_QC Into @QuestionID, @SubclassID, @IsMain, @MainID
WHILE @@FETCH_STATUS = 0
BEGIN
INSERT INTO dbo.PaperLibrary_Question
(PaperID, QuestionID, SubclassID, IsMain, MainID)
VALUES
(@PaperID, @QuestionID, @SubclassID, @IsMain, @MainID)
Fetch Next From cursor_QC Into @QuestionID, @SubclassID, @IsMain, @MainID
END
CLOSE cursor_QC
DEALLOCATE cursor_QC
SET @Count = @Count + 1
END
ELSE
BEGIN
BREAK;
END
Fetch Next From cursor_MainID Into @MainID
END
CLOSE cursor_MainID
DEALLOCATE cursor_MainID
END