pka*_*rio 5 sql t-sql sql-server sql-server-administration
在更改数据库模式之前我发出:
ALTER DATABASE SET RESTRICTED_USER
Run Code Online (Sandbox Code Playgroud)
在结束的时候:
ALTER DATABASE SET MULTI_USER
Run Code Online (Sandbox Code Playgroud)
我知道正在运行的交易将被允许继续直到完成.
问:有没有办法等到所有普通用户都不在数据库中?
问:普通用户可以发出更多交易吗?他们可以继续工作,直到与服务器断开连接?
来自 SQL Server 在线书籍
http://msdn.microsoft.com/en-us/library/aa933082(SQL.80).aspx
如果省略终止子句,则 ALTER DATABASE 语句将无限期等待,直到事务自行提交或回滚。
因此 SET RESTRICTED_USER 将等到所有事务完成后才会生效。
一旦到位,普通用户就无法发出进一步的事务,只有 db_owner 固定数据库角色以及 dbcreator 和 sysadmin 固定服务器角色的成员才能连接到数据库。