Sql readcommitted和nolock锁冲突
为了防止锁和死锁,我决定在视图中使用表提示Sql readcommitted和nolock锁冲突,sql,sql-server,tsql,Sql,Sql Server,Tsql,为了防止锁和死锁,我决定在视图中使用表提示和(NOLOCK) 效果很好,用户很满意 当从应用程序(称为PIVOTAL的CRM应用程序)内部调用这些视图时,问题就开始了 当此应用程序查询我的视图(其中包含和(NOLOCK))时,它会添加一个不同的表锁READCOMMITTED 例如: select * from MY_view WITH(READCOMMITTED) 结果是一条SQL Server错误消息,告诉我有关冲突锁的信息 现在,我无法更改应用程序及其生成脚本的方式 有没有一种方法可以让
和(NOLOCK)
效果很好,用户很满意
当从应用程序(称为PIVOTAL的CRM应用程序)内部调用这些视图时,问题就开始了
当此应用程序查询我的视图(其中包含和(NOLOCK)
)时,它会添加一个不同的表锁READCOMMITTED
例如:
select * from MY_view WITH(READCOMMITTED)
结果是一条SQL Server错误消息,告诉我有关冲突锁的信息
现在,我无法更改应用程序及其生成脚本的方式
有没有一种方法可以让SQL Server忽略我的视图之外的提示?
有没有办法让NOLOCK
优先于READCOMMITTED
,这样我就可以把它保存在我的视图中
谢谢和问候。
马塞洛我认为这里没有一个简单的解决办法。SQL Server无法接受冲突的锁,因为它不知道应用于基础表的锁
您能否使用
READCOMMITTED
为应用程序读取创建一组单独的视图?感谢Szymon,我正在考虑为此数据库启用快照隔离级别。