回答

5
ALTER DATABASE [dbname] SET READ_COMMITTED_SNAPSHOT ON WITH ROLLBACK AFTER 20 SECONDS 
+0

@若昂 - 这是什么呢?需要吗? `在20秒后回滚' – 2010-05-06 06:47:30

+0

根据MSDN: 指定数据库从一种状态转换到另一种状态时何时回退未完成的事务。如果省略了终止子句,那么如果数据库上存在任何锁定,ALTER DATABASE语句将无限期地等待。 – 2010-05-11 13:27:48

20

我建议先切换到single-user模式。这确保你是唯一的连接。否则,该查询可能会被暂停。

来自:http://msdn.microsoft.com/en-us/library/ms175095.aspx

当设置 READ_COMMITTED_SNAPSHOT选项,仅 执行ALTER DATABASE命令的连接是允许在 数据库。在数据库中必须没有其他打开的 连接,直到ALTER DATABASE完成。

所以,用这个SQL:

ALTER DATABASE <dbname> SET SINGLE_USER WITH ROLLBACK IMMEDIATE; 
ALTER DATABASE <dbname> SET READ_COMMITTED_SNAPSHOT ON; 
ALTER DATABASE <dbname> SET MULTI_USER; 
相关问题