将SQL Server 2005置于单用户模式所需的SQL是什么?

时间:2009-07-24 21:07:24

标签: sql sql-server sql-server-2005

我想知道如何使用SQL语句将SQL Server 2005置于单用户模式(以及可能的扩展)?

我在MSDN上找到了这些说明,但他们需要SSMS。

http://msdn.microsoft.com/en-us/library/ms345598(SQL.90,loband).aspx

*将数据库设置为单用户模式

  1. 在对象资源管理器中,连接到SQL Server 2005数据库引擎的实例,然后展开该实例。
  2. 右键单击要更改的数据库,然后单击“属性”。
  3. 在“数据库属性”对话框中,单击“选项”页面。
  4. 从“限制访问”选项中,选择“单个”。
  5. 如果其他用户连接到数据库,则会显示“打开连接”消息。要更改属性并关闭所有其他连接,请单击“是”。*

5 个答案:

答案 0 :(得分:6)

以下内容应该有效:

ALTER DATABASE [MyDatabase] SET SINGLE_USER WITH NO_WAIT
GO

ALTER DATABASE [MyDatabase] SET MULTI_USER WITH NO_WAIT
GO

将其设置回多用户

答案 1 :(得分:5)

尝试

alter database adventureWorks set SINGLE_USER with rollback immediate 

如果您希望为已经执行的交易提供足够的时间来优雅地完成,您可以发出以下命令:

alter database adventureWorks set SINGLE_USER with rollback after 60 seconds  

答案 2 :(得分:0)

在每个数据库的基础上,您可以使用以下方式设置单用户模式:

ALTER DATABASE database_name SET SINGLE_USER

如果其他用户登录并使用数据库,则必须先杀死他们的spid,否则会失败。您可以编写一个基本上从sysprocesses中选择的脚本,并为针对您的目标dbid列出的每个spid发出一个KILL命令。

答案 3 :(得分:0)

请参阅msdn

alter database X
set single_user

答案 4 :(得分:0)

我找到了这些命令:

ALTER DATABASE [dbName] SET MULTI_USER WITH NO_WAIT

ALTER DATABASE [dbName] SET SINGLE_USER WITH NO_WAIT

EXEC sp_dboption'dbName','single user','false'

EXEC sp_dboption'dbName','single user','true'

在:

http://www.kodyaz.com/articles/alter-single-user-multi-user-mode.aspx

试一试。