日期:2014-05-16  浏览次数:20402 次

SQL数据库锁问题
数据库的数据日期从2013.9-2014.3.10
我现在想实现同时进行1.查询2014.3.7号之前的数据
                                         2.insert语句插入10号以后的数据
情况是两者同时进行会相互影响,那怎么处理能相互不影响呢?加锁可以实现么?加什么锁?在哪加?
------解决方案--------------------
select那里用:select * from xxxx with (nolock) where 
------解决方案--------------------
如果按你一开始的描述,不会出现脏读,实际上你可以不加,顶多是等待而已
------解决方案--------------------
引用:
Quote: 引用:

Quote: 引用:

Quote: 引用:

select那里用:select * from xxxx with (nolock) where 


这和不加不是一样么?
为什么会一样呢?


额,不一样,这样出现脏读有错误数据咋办?


加了with (nolock) 就不会出现脏读了。

不过,在2005及以后的版本,可以加上:

alter database 数据库
set read_committed_snapshot on

------解决方案--------------------
准确来说是用乐观并发