当我尝试删除或恢复数据库时,SQL Server一直告诉我数据库正在使用中,但是当我运行此元数据查询时:
select * from sys.sysprocesses
where dbid
in (select database_id from sys.databases where name = 'NameOfDb')
它什么都不返回。
有时会返回1个进程,这是一个CHECKPOINT_QUEUE waittype。如果我试图杀死那个进程,它就不会让我(不能杀死非用户进程)。
任何人都知道出了什么问题?
答案 0 :(得分:30)
我喜欢这个剧本。不要为杀人而挣扎..
use master
alter database xyz set single_user with rollback immediate
restore database xyz ...
alter database xyz set multi_user
答案 1 :(得分:13)
可能有很多东西阻塞了你的数据库。例如,如果您在该数据库上打开了一个查询窗口,那么它将被您锁定。不计算外部访问,例如IIS上的Web应用程序。
如果你真的想强行删除它,请检查关闭现有连接选项或尝试手动停止SQL Server的服务。
答案 2 :(得分:10)