我指的是当我们说USE dbTest
我们开始使用该数据库时我们可以创建表而不是什么,如果我们想要更改数据库,我们可以说USE dbNotatest
它会改变我们正在使用的数据库。
但有没有办法停止使用我们首先选择的数据库,而不开始使用另一个?
答案 0 :(得分:14)
要停止使用数据库,您需要更改数据库上下文。例如,如果您尝试删除数据库并且位于该数据库的上下文中,只需切换到另一个数据库(通常为master
或tempdb
)。
如果对数据库打开了其他连接并阻止您删除数据库,则需要终止连接的spid。这可能很乏味,因此强制关闭所有连接然后删除通常适用于我的数据库的选项是:
use [master];
ALTER DATABASE [foo] SET OFFLINE WITH ROLLBACK IMMEDIATE;
ALTER DATABASE [foo] SET ONLINE;
DROP DATABASE [foo];
通过立即使用回滚使数据库脱机,我强制关闭所有连接并回滚所有打开的事务。现在,我可以在脱机时删除它,但如果我这样做,数据库文件将保留在文件系统上。在线删除数据库将删除数据库文件,因此我在删除之前将其重新联机。
答案 1 :(得分:0)
SQL Server中没有选项。
你只能使用查询来操纵其他数据库,否则你没有任何选择。