我需要在SQL Server中以编程方式启用READ COMMITTED SNAPSHOT。我该怎么做?
我建议先切换到single-user
模式。这确保了你是唯一的连接。否则,查询可能会被挂起。
发件人:http://msdn.microsoft.com/en-us/library/ms175095.aspx
当设置READ_COMMITTED_SNAPSHOT选项,仅限执行ALTER的连接中允许使用DATABASE命令数据库决不能有其他打开的数据库中的连接,直到ALTER数据库已完成。
所以,使用这个SQL:
ALTER DATABASE <dbname> SET SINGLE_USER WITH ROLLBACK IMMEDIATE;
ALTER DATABASE <dbname> SET READ_COMMITTED_SNAPSHOT ON;
ALTER DATABASE <dbname> SET MULTI_USER;
ALTER DATABASE [dbname] SET READ_COMMITTED_SNAPSHOT ON WITH ROLLBACK AFTER 20 SECONDS