为了防止锁和死锁,我决定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
?
谢谢并恭祝安康。马塞洛