今天碰到个事。原本想把数据库设为单用户模式然后把REMOVE FILE。没想到悲剧了。因为很多进程都是需要远程连接这个库,导致别的进程抢在我前面连接了这个数据库,反到我连不上了。想把数据库切回MULTI_USER模式都做不了。老是报错说deadlock。这下我就急了。好在是开发环境。那解决办法就是找到那条占用了单用户进程的session然后kill掉它。调用下sp_who这个存储过程。然后马上切回MULTI_USER。
if object_id('tempdb..#t') is not null
drop table #t
go create table #t(spid int, ecid int, status varchar(100), loginame varchar(1000),
hostname varchar(1000), blk int, dbname sysname null, cmd varchar(1000), request_id int) insert #t
exec sp_who select * from #t where dbname like '%MyDB%' --kill 55