sqlserver-一次updlock和withnolock和with check option 的报错原因分析
接口程序一直运行的很稳定,其中有一天进行了数据库的整改,导致程序不断报错,
报错信息如下
原因:
程序代码写入以下代码
select * from ViewName with(updlock) where XXX
而数据库的这个view代码如下
select * from tableName with(nolock) where XX
只要执行这个查询,就会导致以上错误,以上错误代码,一个需要加锁,一个不需要加锁,故报错了
故将数据库的view进行这样写
select * from tableName where XX with check option
就可以了,具体原因还在研究中
with(nolock)-代表不进行加锁
updlock- 代表更新锁,在执行这个查询后,它的值则被锁定,直到事务提交才可以进行更新
with check option -?
作者:ChenHuzi