sql怎么才能让别人查不到我事物中还没提交的数据

2017-05-06 02:36
首先在事物中写一条insert语句,在还没执行commit操作的情况下,
如果别人直接select查询是查不到的。但是如果别人查询语句最后加上了 with(nolock)之后,
我还没有commit的数据也能被查出来。回滚之后就查不到了。

回复讨论(解决方案)

加with(nolock)之后没办法了吧。这个就是防止阻塞的,事务没提交的也能读出来。
不让他们加with(nolock)不完了吗
加with(nolock)之后没办法了吧。这个就是防止阻塞的,事务没提交的也能读出来。
不让他们加with(nolock)不完了吗

就是说没办法解决这种问题么?我就是求证一下,并不是实际开发有遇到这样的问题。

加with(nolock)之后没办法了吧。这个就是防止阻塞的,事务没提交的也能读出来。
不让他们加with(nolock)不完了吗

就是说没办法解决这种问题么?我就是求证一下,并不是实际开发有遇到这样的问题。

额,我觉得是没办法也可能我是不知道,等等看大牛们说啥吧
楼主百度一下 “sql server 数据库 隔离级别” 

或许能解开你心中的疑惑 。
with(nolock) 这个是查询提示,用来告诉sql server,可以查询到未提交的数据。

这个是语句级别的控制,基本上没办法控制。
楼主百度一下 “sql server 数据库 隔离级别” 

或许能解开你心中的疑惑 。

其实就是因为百度这数据库隔离级别才引发的这个问题。
无论隔离级别是哪一个,加上with(nolock)都能查询到还没有commit的数据。