回答

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; 
相關問題