郁闷的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)