SQL Server已提交读快照隔离级别的设置

如果要把SQL Server数据库事务隔离级别设置为已提交读快照隔离

如果直接运行下面的语句:

ALTER Database [mydbname] SET READ_COMMITTED_SNAPSHOT ON

会可能被阻塞很长时间。我这边在正式环境测试过4个小时都没有执行完。

你可以选择运行下面的语句:

SQL Server已提交读快照隔离级别的设置
SQL Server已提交读快照隔离级别的设置
if(charindex(Microsoft SQL Server 2005,@@version) > 0)  
begin  
    declare @sql varchar(8000)  
    select @sql =  
    ALTER DATABASE  + DB_NAME() +  SET SINGLE_USER WITH ROLLBACK IMMEDIATE ; 
    ALTER DATABASE  + DB_NAME() +  SET READ_COMMITTED_SNAPSHOT ON;  
    ALTER DATABASE  + DB_NAME() +  SET MULTI_USER;  
  
    Exec(@sql)  
end  
SQL Server已提交读快照隔离级别的设置
SQL Server已提交读快照隔离级别的设置

经过测试脚本在1分钟内执行完成。

过查询 sys.databases的 is_read_committed_snapshot_on字段

select is_read_committed_snapshot_on from sys.databases where name = DB_Name()  

is_read_committed_snapshot_on如果为1表示目前为已提交读快照隔离级别。

 

参照网址:http://www.it118.org/Specials/c9fba99e-4401-49cf-8256-ac3c1a34c0d9/a25f60b1-697d-4651-b4e4-e7e1598feced.htm

SQL Server已提交读快照隔离级别的设置,布布扣,bubuko.com

SQL Server已提交读快照隔离级别的设置

上一篇:关于.jar的文件在cmd中无法连接数据库的问题


下一篇:SQL语句教程学习笔记之一