SqlServer View是否始终是最新的?

Lie*_*oen 3 sql-server view

sqlserver视图是否始终是最新的还是会有延迟?

And*_*mar 10

这取决于视图运行的事务隔离级别.默认情况下,视图运行于READ COMMITTED.视图将仅返回已提交的数据.只要您的视图只包含一个SQL语句,并且不调用用户定义的函数或扩展过程,它就会保持一致.

但是观点也可以在更具风险的隔离级别上运行.例如,此视图指定nolock它运行于READ UNCOMMITTED:

create view dbo.MyView
as select * from dbo.MyTable with (nolock)
Run Code Online (Sandbox Code Playgroud)

此视图可以返回作为将回滚的事务的一部分的值(脏读).此事务隔离级别交换性能的一致性.