代码之家  ›  专栏  ›  技术社区  ›  Jason Slocomb

将SQL Server 2005置于单用户模式需要什么SQL?

  •  2
  • Jason Slocomb  · 技术社区  · 15 年前

    我想知道如何使用SQL语句将SQLServer2005置于单用户模式(如果可能的话,也可以扩展到单用户模式)?

    我在MSDN上找到了这些说明,但遗憾的是它们需要SSM。

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

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

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

    以下内容应该有效:

    ALTER DATABASE [MyDatabase] SET SINGLE_USER WITH NO_WAIT
    GO
    

    具有

    ALTER DATABASE [MyDatabase] SET MULTI_USER WITH NO_WAIT
    GO
    

    将其设置回多用户

        2
  •  5
  •   John Sansom    15 年前

    尝试

    alter database adventureWorks set SINGLE_USER with rollback immediate 
    

    如果您希望为已经执行的事务提供足够的时间以顺利完成,则可以发出以下命令:

    alter database adventureWorks set SINGLE_USER with rollback after 60 seconds  
    
        3
  •  0
  •   Callie J    15 年前

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

    ALTER DATABASE database_name SET SINGLE_USER
    

    但是,如果其他用户登录并使用数据库,那么您必须首先杀死他们的SPID,否则这将失败。您可以编写一个脚本,它基本上是从 sysprocesses 并为针对目标dbid列出的每个spid发出kill命令。

        4
  •  0
  •   Johnno Nolan    15 年前

    msdn

    alter database X
    set single_user
    
        5
  •  0
  •   Paul Sasik    15 年前

    我发现了这些命令:

    alter database[dbname]设置多用户而不等待

    alter database[dbname]设置单用户,不等待

    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

    试一试。