选项 一、数据库
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; 配合