标签:解决办法 数据库 master spid sql 进程 model
无法获得数据库 'model' 上的排他锁 解决办法
今天在用sql脚本创建数据库时提示错误:无法获得数据库 'model' 上的排他锁。请稍后重试该操作
由错误提示看出'model'模版数据库被其他进程占用了。
用查看系统进程语句查看model数据库被哪些进程占用了,找到进程id,然后用kill命令杀掉占用进程
--使用以下语句查出占用model数据库的进程id,然后使用kill命令 杀掉进程
--查看占用model数据库的进程,如果是2000,替换成master.dbo.sysprocesses
use master --选择数据库
go
select spid from master.sys.sysprocesses where dbid = db_id('model');
--杀掉占用model数据库的进程
use master --选择数据库
go
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 and dbid = db_id('model')
if @@rowcount = 0
break ;
print(@sql) --打印杀掉进程语句
exec(@sql) --执行杀掉进程语句
end
go
以上语句成功执行后,再执行先前的数据库创建脚本,数据库成功创建,问题解决.
本文来源: 原创自http://www.023shjy.com/learns/show/164.aspx,转载请注明原文出处
标签:解决办法,数据库,master,spid,sql,进程,model 来源: https://www.cnblogs.com/shadow-97z/p/11803078.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。