代码改变世界

郁闷的SQL SERVER锁

2010-09-06 10:37  Jun2009  阅读(424)  评论(2编辑  收藏  举报

目前有段程序,想将数据库从ORACLE改到SQL,发现SQL锁好难实现如下功能(SQL SERVER功力不够)

ORACLE里:

1. 使用FOR UPDATE语句得到行

2. 对行进行操作(耗时或复杂计算)(此时其他用户不能对行加锁)

3. 依据2的结果,更新行,同时释放锁

 

4. 上列执行中,另外一个用户锁定行可以使用两种策略:

a. 等待事务完成,再进行处理(适合1~3执行时间不长)(还是使用FOR UPDATE)

b. 立刻报错,告诉用户另外一个用户正在操作 (使用FOR UPDATE NOWAIT)

 

 

 

 

 

跟小D每日学口语