我最近重新定位了一个数据库,需要删除旧数据库的任何存在。由于我想完全删除它,所以我只需打开 SQL Server Enterprise Manager,找到数据库并尝试删除它。但是我收到以下错误:
Error 5070: Database state cannot be changed while other users are using the database. ALTER DATABASE statement failed. sp_dboption command failed.
我不在乎用户或阻止我删除此数据库的任何人。我只需要摆脱它。请帮我弄清楚如何完成这项任务。
答案1
您有连接到数据库的用户需要断开连接。查看他们正在使用谁sp_who
。有关 sp_who 的更多信息,请参阅 MSDN。要断开用户连接,您可以使用如下脚本这个。
如果您确定不会导致以下问题,您也可以强制断开所有用户的连接:
ALTER DATABASE alerts SET OFFLINE ROLLBACK IMMEDIATELY;
这会回滚打开的事务,这很不错,但仍然有点过于复杂,因为你不知道谁连接了。我认为使用 sp_who 查看谁连接了会更有成效,这样你就知道需要为谁更改连接字符串,这样他们就不会继续访问旧服务器。