asp.net 多用户同时操作sqlserver数据库中同一表中的同一行数据,我知道用锁,对锁比较陌生还是不知道该怎么处理。请举列说明谢谢
单条sql语句系统会自动加锁的。
多条你可以显示加上BeginTrans、CommitTrans、RollbackTrans 这些
其实数据操作归根到底是业务驱动的,所以用业务性解决方法,举例如下:
前提:表中有一个加锁列(列A),有一个已加锁索引表(表T)
说明:您说的这种表一定是频繁操作的表,所以表T也是为了缓解这种解压而建的表。
流程:操作一行数据===》到表T里看是否加锁====》(如果未加锁)加锁到表T====》操作====》解锁
即便是多用户操作同时操作同一个表,数据库也是会自动加锁的,会自动排队,但是当数据量大的时候就会出现死锁,所有数据量大的时候不推荐在一张表操作,可以改为多表比较好。
并发 简单的说可以添加一个修改时间字段(ModifyTime) 每次删、改的时候 加上where ModifyTime="" 判断 比较简单