如何通过存储过程在下一行中选择QuestionId?
(客户端:一个问题(QuestionId:3)将显示在屏幕上。当点击下一个按钮时,将显示下一个问题(QuestionId:7)。
请注意; 每次执行后,必须根据RowId逐步连续更改QuestionId(如1-3-7-8 ......)。此外,任何问题都可以删除,因此保持订单非常重要。
+-------+------------+--------------+
| RowId | QuestionId | QuestionText |
+-------+------------+--------------+
| 1 | 1 | aaaa |
| 2 | 3 | bbbb |
| 3 | 7 | cccc |
| 4 | 8 | dddd |
| 5 | 13 | eeee |
| 6 | 17 | ffff |
| 7 | 24 | gggg |
| 8 | 30 | hhhh |
+-------+------------+--------------+
答案 0 :(得分:1)
试试这个:
CREATE PROCEDURE dbo.GetNextQuestion
@QuestionID int
AS
SET NOCOUNT ON
SELECT TOP 1 RowId, QuestionId, QuestionText
FROM Questions
WHERE QuestionID > @QuestionID
ORDER BY QuestionID
GO
单击“下一步”按钮应将当前问题ID传递给存储过程。