为什么READPAST在SSMS中工作,而不是在OLEDB上工作?

时间:2015-10-21 15:29:24

标签: sql-server sql-server-2008 oledb qlikview

我们尝试在SQL select语句中使用READPAST,使用QlikView从SQL Server 2008数据库中提取数据,QlikView设置为使用OLEDB连接到数据库。

这样做的原因是我们希望避免被其他进程锁定,但也不想阅读任何未提交的数据 - 否则我们将使用NOLOCK。

我们最初在SSMS中测试了这种方法 - 启动一个事务,添加一行,然后用READPAST分别查询该表。这并没有像我们想要的那样返回未提交的行

然后我们将它添加到QlikView中的OLEDB SQL查询(相同的查询,相同的数据库)并运行代码。这次它在完成查询之前等待事务被关闭(提交或回滚)。

我们还尝试使用QlikView支持的ODBC和SQL Native Client,但结果相同。

我们也尝试使用NOLOCK作为提示,并且按预期执行 - 它返回SSMS和QlikView中的未提交行。

知道为什么这可以在SSMS中工作而不是通过OLEDB / ODBC / SQLNC? 数据库或需要更改的连接是否有配置选项?

0 个答案:

没有答案