我指的是当我们说 USE dbTest
时,我们开始使用该数据库,我们可以创建表等等,如果我们想更改数据库,我们可以只说 USE dbNotatest
,它会更改我们正在使用的数据库。
但是有没有办法停止使用我们首先选择的数据库,而不开始使用另一个数据库?
最佳答案
要停止使用数据库,您需要更改数据库上下文。例如,如果您尝试删除数据库并且您在该数据库的上下文中,只需切换到另一个数据库(通常是 master
或 tempdb
)。
如果其他连接打开到数据库并阻止您删除数据库,您将需要终止连接的 spid。这可能很乏味,因此强制关闭所有连接然后删除通常对我有用的数据库的选项是:
use [master];
ALTER DATABASE [foo] SET OFFLINE WITH ROLLBACK IMMEDIATE;
ALTER DATABASE [foo] SET ONLINE;
DROP DATABASE [foo];
通过立即回滚使数据库脱机,我强制所有连接关闭并回滚所有打开的事务。现在,我可以在脱机时将其删除,但如果这样做,数据库文件将保留在文件系统上。在线删除数据库将删除数据库文件,因此我在删除之前将其重新联机。
关于sql-server - SQL Server 中是否有停止使用数据库的命令?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/20688018/