在SQL Server视图中使用快照隔离级别

时间:2015-07-06 15:59:18

标签: sql-server view snapshot-isolation

经过一些研究,我无法真正找到在SQL Server视图中使用快照隔离级别的方法。

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

2 个答案:

答案 0 :(得分:0)

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

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]

答案 1 :(得分:0)

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

SET TRANSACTION ISOLATION LEVEL SNAPSHOT
SELECT * FROM dbo.YourView