执行时可以覆盖存储过程中的 NOLOCK 吗?

Cal*_*her 6 sql-server-2008 sql-server sql-server-2008-r2

我们的应用程序通过调用他们的存储过程之一与合作伙伴的应用程序交互。他们坚持在他们的代码中使用 NOLOCK 提示,这是一个很长的存储过程。我们间歇性地获得错误数据并怀疑存在竞争条件。

除了手动更改他们的存储过程之外,有什么方法可以在执行时覆盖他们的 NOLOCK 提示?

注意——我们进行存储过程调用的代码是一个 .NET 应用程序,以防它为我们提供任何其他选项。

Aar*_*and 5

不,查询级别的提示和选项会覆盖会话和服务器级别的设置。基本上,在查询级别应用的提示是最低公分母,并且获胜(除了 MAXDOP 和资源调控器,但这与我们在这里讨论的内容略有不同)。

曾经在 SQL Server 2000 中被记录在案,但这些措辞已从更现代的文档版本中删除。