Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/84.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql readcommitted和nolock锁冲突_Sql_Sql Server_Tsql - Fatal编程技术网

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,我正在考虑为此数据库启用快照隔离级别。