如何删除当前正在使用的数据库?

时间:2015-11-24 09:39:29

标签: sql sql-server

NB。我不想在向导中标记要删除的复选框。这个问题严格关于脚本行为。

当我运行以下脚本以重新开始时,我收到错误,因为数据库 Duck 目前正在使用中,因此无法将其删除。

use Master
drop database Duck
drop login WorkerLogin
drop login AdminLogin
go

尽管如此(尽管我是系统中当前唯一的用户而且我没有运行其他查询,但这是另一个故事),我需要关闭所有现有的连接。一种方法是等待它或重新启动管理器。但是我想在这种行为中编写脚本,这样我就可以告诉顽固的服务器删除鸭子了。 (是的,“拼写错误”。)

我需要在drop语句中添加什么内容?

3 个答案:

答案 0 :(得分:5)

尝试以下代码。

USE master;
ALTER DATABASE [Duck] SET SINGLE_USER WITH ROLLBACK IMMEDIATE;
DROP DATABASE [Duck] ;

如需深入讨论,请参阅this answer

答案 1 :(得分:2)

在丢弃数据库之前,必须先杀死所有活动连接。

ALTER DATABASE YourDatabase SET SINGLE_USER WITH ROLLBACK IMMEDIATE

--do you stuff here

ALTER DATABASE YourDatabase SET MULTI_USER

http://wiki.lessthandot.com/index.php/Kill_All_Active_Connections_To_A_Database

How do you kill all current connections to a SQL Server 2005 database?

答案 2 :(得分:0)