SQL随机查询一条记录并对其中一个字段修改值然后输出查询到的这条数据

SQL查询表中一条记录并对其中一个字段值进行修改,然后输出查询到的这条数据表中字段: ID(自增量),题目,状态现在使用的是3条语句来进行操作declare @int int1:查询, set @sql=✀SELECT @int= ID from ✀+@id+✀ where 状态=1✀ exec sp_executesql @sql,N✀@int bigint output✀,@int output(状态1代表查询一条没有被查询过的题目,如果状态值为2则代表查询过)2:修改,set @sql=✀update ✀+@id+✀ set 状态=2 where ID=✀+ CAST(@int as varchar) exec(@sql)3:在次查询输出set @sql=✀select ID,题目,状态 from ✀+@id+✀ where ID=✀+ CAST(@int as varchar) exec(@sql)现在的情况是:10个同时查询请求时查询只需要0.1秒,但是当100个人或者1000人同时请求则要十秒或更多,小弟请教各位大神如何优化能提高查询速度,更换硬件除外(硬件:WIN2003 X64,CPU 至强5645*2,内存 16G,三星固态硬盘读写520M/s)或者3条语句是否能合并一条以提高查询速度或是使用此条语句如何能达到上面3条语句的效果:select top 1 ID ,题目,状态 , NewID()as random from yyy_ml where 状态=1 order by random满意者加分,谢谢
2026年09月27日 10:23
有1个网友回答
网友(1):

--你是要随机在yyy_ml这个表中取状态=1的一条记录并更新该记录的状态为2么?(sql2005或以上版本)
With T
As
(
Select Top 1 * From yyy_ml Where 状态=1 Order by newid()
)
Update T Set 状态=2
Output inserted.id,inserted.题目