我收到以下錯誤(使用SQL Server 2012)。SQL Server錯誤|快照隔離相關
快照隔離事務訪問數據庫'db1'失敗,因爲此數據庫中不允許快照隔離。使用ALTER DATABASE來允許快照隔離。
這種情況與其他博客的建議不同。我從另一個數據庫(db1)查詢數據庫表(db2.table1)(...使用同義詞)。錯誤查詢的簡化版本如下。
select col1, col2
from db1.tab1 t
inner join db2.table1
where xyz = 'abc'
DB1有默認的隔離級別(讀提交)和DB2具有隔離級別設置爲快照隔離。
上面的查詢失敗了100個案例中有5個出現上述錯誤消息。
該查詢正在執行使用實體框架6和應用程序中的其他類似查詢的一部分。應用程序依賴於db2進行所有其他操作。
歡迎任何建議。
注意 - >我無法將db1的隔離級別設置爲快照隔離作爲解決方案。
如果不是所有涉及事務的數據庫都允許快照隔離,您希望如何/爲什麼希望'SNAPSHOT'隔離工作? –
就像我提到的一樣,工作100次100次... – ash
db2是否強制實現快照隔離('READ_COMMITTED_SNAPSHOT')或僅僅允許它?如果它強制執行,可能無法可靠地工作。如果它是可選的,你可能手上有[KB972915](https://support.microsoft.com/en-us/kb/972915)之類的東西,儘管這是純粹的猜測,因爲我不知道如何英孚處理這種情況。 –