選項 一、數據庫
single_user(單用戶),multi_user(多用戶),restricted_user(受限用戶); 描述數據庫的用戶訪問屬性,它們互斥,設置其中任何一個選項就會取消對其它選項的設置 single_user模式的數據庫每次只能有一個鏈接。 restricted_user模式能夠有多個鏈接,前提是這些用戶要是被認爲是‘合格’的如 sysadmin,dbcreator,dbowner。 multi_user任何有效的用戶均可以鏈接。 例子: alter database studio set single_user with rollback immediate ; ---- | rollback after 1000|no_wait; go 注意:這個時候只有一個鏈接能夠操做數據庫,若是別的鏈接想要操做數據庫,它會失敗,不是由於它的權限問題,而是隻能夠有一個鏈接。
選項 二、rest
online, offline, emergency 它們互斥 若是數據被設置爲offline,它就會關閉並且徹底關掉,而且標記爲脫機,數據庫脫機時不能夠有被修改,若是數據庫 中有任何鏈接都不能夠被標記爲offline。 例子: select name , state_desc from sys.databases where name = 'studio' with rollback immediate ; ---- | rollback after 1000|no_wait; go 注意: 對於數據庫的狀態咱們能夠設置是隻有 offline ,online,emergency! 它的一些別的狀態咱們是不可能對它進行設置的 如:從備份中還原的過程會對應 recovering ,若是出於一些緣由沒有辦法完成還原就會對應 recovery_pending; 如:還原過程當中檢測出了數據損壞就會對應 suspect,數據庫就會變得徹底不可用,不少狀況下能夠把數據庫設置爲 emergency 從而能夠對它進行只讀操做,若是的丟失數據庫的一個或多個日誌文件,在將數據庫複製到新位置時,用emergency 模式還 還能夠對數據庫進行訪問。從recovery_pending 轉換到 emergency時SQL Server會關閉數據庫,而後用特殊的標記從新 啓動,這樣會跳過恢復過程,跳過恢復意味着可能會有邏輯上的錯誤或物理上的不一致(如 索引丟失,斷開頁面)
選項 三、日誌
read_only ,read_write ----------------------- alter database studio set read_only with rollback immediate; ---- | rollback after 1000|no_wait; go
狀態選項均可以和 rollback immediate | rollback after 1000 | no_wait; 配合