我有一个选择:
SELECT AnswerGridResponses,
QuestionUId,
UserTestQuestionId
FROM UserTest,
UserTestQuestion
WHERE UserTest.UserTestId = @UserTestId
AND UserTest.UserTestId = UserTestQuestion.UserTestId
和我需要调用的程序:
EXEC sp_get_correct_responses @QuestionUId, @AnswerGridCorrect output
有人可以举例说明如何在存储过程中调用存储过程并传入@QuestionUId。在我传递之后我需要做更多的处理,但我想如果我知道如何循环那么这将给我所需要的一切。
答案 0 :(得分:2)
使用Cursor
执行此操作。
DECLARE CUR CURSOR STATIC FOR
SELECT DISTINCT QuestionUId
FROM UserTest
INNER JOIN UserTestQuestion
ON UserTest.UserTestId = UserTestQuestion.UserTestId
WHERE UserTest.UserTestId = @UserTestId
OPEN vendor_cursor
FETCH NEXT FROM CUR INTO @QuestionUId
WHILE @@FETCH_STATUS = 0
BEGIN
EXEC Sp_get_correct_responses
@QuestionUId,
@AnswerGridCorrect output
FETCH NEXT FROM CUR INTO @QuestionUId
END
CLOSE CUR;
DEALLOCATE CUR;
注意:光标可能会导致性能下降。尝试将RBAR操作更改为基于设置的方法