1

在做了一些研究之后,我真的找不到在 SQL Server 视图中使用快照隔离级别的方法。

是否有某种方法可以实现它,或者如果确实不可能,当我希望我的观点不阻止作家但仍然避免对他们使用 NOLOCK 提示时,处理这种情况的最佳方法是什么?

4

2 回答 2

1

我认为您不能强制视图始终使用快照隔离(快照隔离没有查询提示,因为它在事务级别,而不是查询级别)。视图的调用者必须自己设置隔离:

SET TRANSACTION ISOLATION LEVEL SNAPSHOT
SELECT * FROM dbo.YourView
于 2017-12-19T14:24:13.723 回答
0

要在数据库上激活快照隔离级别,请使用以下代码:

ALTER DATABASE [your DB] SET READ_COMMITTED_SNAPSHOT ON;
ALTER DATABASE [your DB] SET ALLOW_SNAPSHOT_ISOLATION ON;

打开时,您的视图和表格将自动使用它。

更多信息 [ https://technet.microsoft.com/en-us/library/ms175095(v=sql.105).aspx][1]

于 2015-07-06T17:44:36.030 回答