我已经看到sql语句使用nolock和with(nolock)
例如 – @H_301_3@select * from table1 nolock where column1 > 10
例如 – @H_301_3@select * from table1 nolock where column1 > 10
和
@H_301_3@select * from table1 with(nolock) where column1 > 10以上哪些陈述是正确的,为什么?
解决方法
第一个声明不会锁定任何东西,而第二个声明不会锁定.当我刚刚在sql Server 2005中进行测试时,@H_301_3@select * from table1 nolock where column1 > 10
“nolock”成为table1的查询中的别名.
@H_301_3@select * from table1 with(nolock) where column1 > 10执行所需的nolock功能.持怀疑态度?在一个单独的窗口中运行
@H_301_3@BEGIN TRANSACTION UPDATE tabl1 set SomeColumn = 'x' + SomeColumn锁定表,然后在自己的窗口中尝试每个锁定语句.第一个将挂起,等待锁释放,第二个将立即运行(并显示“脏数据”).不要忘记发行
@H_301_3@ROLLBACK当你完成了