Hi,
Please refer below code.
SQL
DECLARE @PersonTable AS TABLE(Id INT,Name VARCHAR(50))
INSERT INTO @PersonTable VALUES
(1,'Rustam'),
(2,'Asror'),
(3,'Firuz'),
(4,'Sadriddin'),
(5,'Asror')
DECLARE @QuestionTable AS TABLE(Id INT,Question VARCHAR(50),Answer1 VARCHAR(50),Answer2 VARCHAR(50),Answer3 VARCHAR(50),Answer4 VARCHAR(50))
INSERT INTO @QuestionTable VALUES
(1,'The capital of India.','Dushanbe','Moscow','Kabul','Delhi'),
(2,'The capital of Tajikistan','Moscow','Dushanbe','Delhi','Kabul'),
(3,'The capital of Afganistan','Delhi','Kabul','Moscow','Dushanbe'),
(4,'The capital of Japan','Tokyo','Moscow','Kabul','Dushanbe')
CREATE TABLE #Temp(Id INT IDENTITY(1,1),PersonId INT,Question VARCHAR(50),Answer1 VARCHAR(50),Answer2 VARCHAR(50),Answer3 VARCHAR(50),Answer4 VARCHAR(50))
DECLARE @PersonId AS INT
DECLARE GetRandomData CURSOR
FOR
SELECT Id FROM @PersonTable
OPEN GetRandomData
FETCH NEXT FROM GetRandomData INTO @PersonId
WHILE @@FETCH_STATUS = 0
BEGIN
PRINT @PersonId
INSERT INTO #Temp(Question,Answer1,Answer2,Answer3,Answer4,PersonId)
SELECT TOP 3 Question,Answer1,Answer2,Answer3,Answer4,@PersonId
FROM @QuestionTable ORDER BY NEWID()
FETCH NEXT FROM GetRandomData
INTO @PersonId
END
CLOSE GetRandomData;
DEALLOCATE GetRandomData;
SELECT * FROM #Temp
DROP TABLE #Temp
Screenshot
