是否可以为 SQL Server 中的所有连接设置 DEFAULT TRANSACTION ISOLATION?

Inq*_*Shm 3 sql-server snapshot-isolation sql-server-2016

我希望默认事务隔离级别为 SNAPSHOT。

如何在 SQL Server 2016 数据库上进行设置?

Pau*_*ite 10

无法将快照隔离 (SI) 配置为默认隔离级别。

要使用 SI,必须为数据库启用快照隔离:

ALTER DATABASE CURRENT
SET ALLOW_SNAPSHOT_ISOLATION ON;
Run Code Online (Sandbox Code Playgroud)

然后每个连接必须显式请求SI,例如使用:

SET TRANSACTION ISOLATION LEVEL SNAPSHOT;
Run Code Online (Sandbox Code Playgroud)

可以设置默认读取提交的隔离级别使用行版本(RCSI)。

如果 Read Committed Snapshot Isolation (RCSI) 足以满足您的目的,则设置为:

ALTER DATABASE CURRENT
SET READ_COMMITTED_SNAPSHOT ON; 
Run Code Online (Sandbox Code Playgroud)

进一步阅读: