我在 SQL Server 2008 上有一个数据库,我想删除它。目前它处于单用户模式,并且正在使用中。
select * from sys.sysprocesses
返回
Msg 924, Level 14, State 1, Line 1
Database 'G_MAIN_DE' is already open and can only have one user at a time.
而且我不知道如何识别我必须杀死的会话。
尝试将其设置为离线
ALTER DATABASE G_MAIN_DE SET OFFLINE WITH ROLLBACK IMMEDIATE
产量
Msg 5064, Level 16, State 1, Line 1
Changes to the state or options of database 'G_MAIN_DE' cannot be made at this time. The database is in single-user mode, and a user is currently connected to it.
Msg 5069, Level 16, State 1, Line 1
ALTER DATABASE statement failed.
要识别当前使用数据库的会话,您可以尝试
此内置存储过程显示与数据库的所有连接
此查询会终止与数据库的连接,例如连接 SPID #53
最简单的方法是使用 SSMS 活动监视器(右键单击服务器/活动监视器/进程)。按数据库排序。杀死任何持有数据库的进程。您可能还想在将数据库设置为单用户并执行删除之前立即发出 kill 命令。
如果上述过程不起作用,则转到服务并终止任务管理器中的 sqlservices。然后就可以设置为多用户了。