首页 新闻 会员 周边

asp.net 多用户同时操作sqlserver数据库中同一表中的同一行数据,我知道用锁,对锁比较陌生还是不知道该

0
悬赏园豆:40 [待解决问题]

asp.net  多用户同时操作sqlserver数据库中同一表中的同一行数据,我知道用锁,对锁比较陌生还是不知道该怎么处理。请举列说明谢谢

yjwpop的主页 yjwpop | 初学一级 | 园豆:22
提问于:2012-07-12 23:40
< >
分享
所有回答(5)
1

单条sql语句系统会自动加锁的。

多条你可以显示加上BeginTrans、CommitTrans、RollbackTrans   这些

owsir | 园豆:481 (菜鸟二级) | 2012-07-13 08:45
0

其实数据操作归根到底是业务驱动的,所以用业务性解决方法,举例如下:

前提:表中有一个加锁列(列A),有一个已加锁索引表(表T)

说明:您说的这种表一定是频繁操作的表,所以表T也是为了缓解这种解压而建的表。

流程:操作一行数据===》到表T里看是否加锁====》(如果未加锁)加锁到表T====》操作====》解锁

幽灵~ | 园豆:268 (菜鸟二级) | 2012-07-13 09:27
0

即便是多用户操作同时操作同一个表,数据库也是会自动加锁的,会自动排队,但是当数据量大的时候就会出现死锁,所有数据量大的时候不推荐在一张表操作,可以改为多表比较好。

编程笔记 | 园豆:107 (初学一级) | 2012-07-13 09:32
0

并发 简单的说可以添加一个修改时间字段(ModifyTime) 每次删、改的时候 加上where ModifyTime="" 判断 比较简单

普通用户 | 园豆:54 (初学一级) | 2012-07-13 10:01
0

推荐园子里的一篇文章:T-SQL查询进阶—理解SQL Server中的锁

dudu | 园豆:30994 (高人七级) | 2012-07-13 11:08
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册