日期:2014-05-17  浏览次数:20808 次

为什么无法删除一个数据库
   我先将一个数据库DB1设置为了单用户模式,后来又进行了一些操作,最后想删除的时候提示我“无法删除数据库 "db1",因为该数据库当前正在使用。”

   可是查询sysprocesses没有使用DB1的precess

还有什么原因吗?
sqlserver 该数据库当前正在使用

------解决方案--------------------
查看一下该数据库上是否有锁(lock)..

select * from sys.dm_tran_locks
 where resource_database_id=5

据我经验;有时即使sys.sysprocesses没有dbid=5的记录,也得等一会儿(大概几十秒吧)才可删除数据库的.
------解决方案--------------------
try this,

-- 获取锁住该数据库的spid
select request_session_id from sys.dm_tran_locks
 where resource_database_id=5

-- 结束指定进程
kill [spid]