解决SQL SERVER创建数据时“无法获得数据库’model’上的排他锁”报错

在创建数据库时存在如下图报错:无法获得数据库’model’上的排他锁,

解决方法:在查询分析器中添加如下sql语句执行即可,

declare @sql varchar(100) 
while 1=1 
begin
select top 1 @sql = 'kill '+cast(spid as varchar(3)) 
from master..sysprocesses 
where spid > 50 and spid <> @@spid 
if @@rowcount = 0 
break 
exec(@sql) 
end

原因:这里参考百度百科对死锁的解释,
两个或两个以上的进程在执行过程中,由于竞争资源或者由于彼此通信而造成的一种阻塞的现象,若无外力作用,它们都将无法推进下去。此时称系统处于死锁状态或系统产生了死锁,这些永远在互相等待的进程称为死锁进程。如:如果线程A锁住了记录1并等待记录2,而线程B锁住了记录2并等待记录1,这样两个线程就发生了死锁现象。

发表评论

电子邮件地址不会被公开。 必填项已用*标注