多个客户端 同时访问数据库,如何防止读取到同一条记录

时间:2021-11-07 19:25:43
开发了个评卷客户端,远程访问sql server,多个客户端同时读未批阅的的试题记录(一条一条读),如何防止两个客户端读取到同一考生的试题记录?


疑虑:数据库本身会将多个客户端串行访问? 还是需要我特别处理,如果需要处理,该如何处理?

5 个解决方案

#1


select * from table(xlock) 加上排他锁 多个客户端 同时访问数据库,如何防止读取到同一条记录

#2


http://bbs.csdn.net/topics/80277692

http://database.51cto.com/art/201011/232997.htm
在查询时使用排他锁
我们在查询某些记录的时候,不希望它被其它进程所查询,那么我们可以使用排他锁。 
SELECT * FROM dbo.ShortMessage WITH (XLOCK HOLDLOCK) WHERE OtherPartyID = 1
这里我还使用了一个HOLDLOCK,是为了使这个锁保持到整个事务的结束

#3


使用排他锁,楼上的就可以了  

#4


多个客户端 同时访问数据库,如何防止读取到同一条记录

#5


排他锁 楼主可以详细了解下

#1


select * from table(xlock) 加上排他锁 多个客户端 同时访问数据库,如何防止读取到同一条记录

#2


http://bbs.csdn.net/topics/80277692

http://database.51cto.com/art/201011/232997.htm
在查询时使用排他锁
我们在查询某些记录的时候,不希望它被其它进程所查询,那么我们可以使用排他锁。 
SELECT * FROM dbo.ShortMessage WITH (XLOCK HOLDLOCK) WHERE OtherPartyID = 1
这里我还使用了一个HOLDLOCK,是为了使这个锁保持到整个事务的结束

#3


使用排他锁,楼上的就可以了  

#4


多个客户端 同时访问数据库,如何防止读取到同一条记录

#5


排他锁 楼主可以详细了解下