为了防止锁和死锁,我决定WITH(NOLOCK)在我的视图中使用表提示。
效果很好,用户很满意。
当从应用程序(称为 PIVOTAL 的 CRM 应用程序)内部调用这些视图时,问题就开始了。
当此应用程序查询我的视图(其中包含WITH(NOLOCK))时,它会添加一个不同的 table lock READCOMMITTED。
例如:
select * from MY_view WITH(READCOMMITTED)
这样做的结果是一条 SQL Server 错误消息,告诉我有冲突的锁。
现在,我无法更改应用程序及其生成脚本的方式。
有没有办法让 SQL Server 忽略外部的提示My_view?有没有办法让NOLOCK占上风READCOMMITTED,让我可以保持在里面My_View?
谢谢并恭祝安康。马塞洛