欢迎投稿

今日深度:

还原数据库出现“未获得排他访问”解决方法(

还原数据库出现“未获得排他访问”解决方法(杀死数据库连接的存储过程sqlserver),存储过程sqlserver


在master数据库下创建存储过程如下:

createproc killspid (@dbnamevarchar(20))
as
begin
declare@sqlnvarchar(500)
declare@spidint
set@sql='declare getspid cursor for select spid from sysprocesses where dbid in (select dbid from sysdatabases where name=+@dbname+)'
exec(@sql)
open getspid
fetch next from getspid  into@spid
while @@fetch_status<>-1
begin
exec('kill  '+@spid)
fetch next from getspid  into@spid
end
close getspid
deallocate  getspid
end
--用法

use master
exec killspid  '''数据库名'''

 

单引号嵌套

用三个单引号的作用,最外层的单引号表示vchar,第二个单引号是转义,最里面的单引号是字符串中的单引号;declare @dbname nvarchar(500)

set @dbname='''zcc''' --得到的变量为'zcc', set @dbname='zcc'   --得到的变量是zcc

 


还原数据库时,提示:因为数据库正在使用,所以未可以获得对数据库的排他访问权

说明确实是正在被使用.关闭服务运行.在编写时候.只打开编辑界面.
 

用SQL Server2000还原数据库,提示数据库正在使用,未可以获得对数据库的排他访问权,数据库不可以脱机

分离数据库后试试看。
 

www.htsjk.Com true http://www.htsjk.com/shujukunews/4049.html NewsArticle 还原数据库出现“未获得排他访问”解决方法(杀死数据库连接的存储过程sqlserver),存储过程sqlserver 在master数据库下创建存储过程如下: create proc killspid ( @dbname varchar ( 20 )) as begin...
相关文章
    暂无相关文章
评论暂时关闭