2010-06-09 76 views
94

如何强制我的数据库脱机,而不考虑已经使用它的用户?如何强制SQL Server 2008数据库脱机

我想:

ALTER DATABASE database-name SET OFFLINE; 

但后7分钟仍然挂。

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

如果这甚至是可能的?

回答

160

转到离线见http://www.blackwasp.co.uk/SQLOffline.aspx

USE master 
GO 
ALTER DATABASE YourDatabaseName 
SET OFFLINE WITH ROLLBACK IMMEDIATE 
GO 

转到网上

USE master 
GO 
ALTER DATABASE YourDatabaseName 
SET ONLINE 
GO 
+8

@radbyx:MSDN说,使用'master'的操作时,DB的状态 – abatishchev 2010-06-10 15:36:03

+15

@radbyx:如果您使用MY_DATABASE,然后ALTER DATABASE MY_DATABASE SET OFFLINE将失败,因为*您正在使用它!是的,我刚刚被这个... ... – TarkaDaal 2012-03-29 12:04:19

+10

Didnt为我工作: 消息5061,级别16,状态1,行1 ALTER DATABASE失败,因为锁不能放在数据库'MyDatabase'上。稍后再试。 消息5069,级别16,状态1,行1 ALTER DATABASE语句失败。 – Andez 2012-07-09 11:02:36

20

您需要使用WITH ROLLBACK IMMEDIATE来启动其他连接,而不考虑已经在使用它的人或者是谁。

或使用WITH NO_WAIT不会挂起并且不杀死现有连接。有关详细信息,

相关问题