是否有命令停止在SQL Server中使用数据库?

时间:2013-12-19 17:28:26

标签: sql-server

我指的是当我们说USE dbTest我们开始使用该数据库时我们可以创建表而不是什么,如果我们想要更改数据库,我们可以说USE dbNotatest它会改变我们正在使用的数据库。

但有没有办法停止使用我们首先选择的数据库,而不开始使用另一个?

2 个答案:

答案 0 :(得分:14)

要停止使用数据库,您需要更改数据库上下文。例如,如果您尝试删除数据库并且位于该数据库的上下文中,只需切换到另一个数据库(通常为mastertempdb)。

如果对数据库打开了其他连接并阻止您删除数据库,则需要终止连接的spid。这可能很乏味,因此强制关闭所有连接然后删除通常适用于我的数据库的选项是:

use [master];
ALTER DATABASE [foo] SET OFFLINE WITH ROLLBACK IMMEDIATE;
ALTER DATABASE [foo] SET ONLINE;
DROP DATABASE [foo];

通过立即使用回滚使数据库脱机,我强制关闭所有连接并回滚所有打开的事务。现在,我可以在脱机时删除它,但如果我这样做,数据库文件将保留在文件系统上。在线删除数据库将删除数据库文件,因此我在删除之前将其重新联机。

答案 1 :(得分:0)

SQL Server中没有选项。

你只能使用查询来操纵其他数据库,否则你没有任何选择。