如何强制SQL Server 2008数据库脱机

rad*_*byx 101 sql t-sql sql-server sql-server-2008

如何强制我的数据库脱机,而不考虑已经使用的是什么或谁?

我试过了:

ALTER DATABASE database-name SET OFFLINE;
Run Code Online (Sandbox Code Playgroud)

但它在7分钟后仍然悬挂.

我想要这个,因为我需要测试场景.

如果可能的话?

aba*_*hev 180

下线

USE master
GO
ALTER DATABASE YourDatabaseName
SET OFFLINE WITH ROLLBACK IMMEDIATE
GO
Run Code Online (Sandbox Code Playgroud)

上网

USE master
GO
ALTER DATABASE YourDatabaseName
SET ONLINE
GO
Run Code Online (Sandbox Code Playgroud)

  • @radbyx:如果您使用MY_DATABASE,那么ALTER DATABASE MY_DATABASE SET OFFLINE将失败,*因为*您正在使用它!是的,我刚刚受到了刺痛...... (17认同)
  • 没有为我工作:消息5061,级别16,状态1,行1 ALTER DATABASE失败,因为无法将锁定放在数据库'MyDatabase'上.稍后再试.消息5069,级别16,状态1,行1 ALTER DATABASE语句失败. (10认同)
  • @radbyx:MSDN说在运行DB状态时使用`master` (8认同)
  • 我已经看到了你仍然需要使用'sp_who2 active'/'sp_whoisactive'来查看来自预定作业机器或middletier东西的一些顽固连接并使用SPID编号运行KILL来摆脱它们的情况 (6认同)

Mar*_*ith 22

您需要使用它WITH ROLLBACK IMMEDIATE来启动其他连接,而不考虑已经使用它的是什么或谁.

或者使用WITH NO_WAIT不挂起而不杀死现有连接.有关详细信息,请参见http://www.blackwasp.co.uk/SQLOffline.aspx