您的位置:首页 > 数据库

SqlServer: 单用户模式下查杀相关进程实现单/多用户转换 .

2012-08-28 13:12 204 查看
SQLServer下,单/多用户模式转换的三种方法:

1.直接在Management Studio中设置相关数据库的Properties:Options-->Restrict Access下设置MULTI/SINGLE_USER。

2.若是其他人设置Server为单用户模式,或者其他未知进程占用操作DB,再使用第一种方法发现该DB的Properties是打不开的,这时应该使用如下T-SQL进行操作:

?
3.也可以直接更改DB模式:

?
倘若在单用户模式下恢复多用户模式或者操作DB发现操作总是失败,这是因为有其他进程占用该DB的缘故,有人会直接手动查看监视器中的进程,把与目的库有关的KILL掉,这种方法是很粗糙的,效率低而且有操作错误进程的危险。其实,实时操作DB的进程在master中是有记录的,我们只需要一个select语句就知道该进程, 然后Kill相关进程:

[sql] view plaincopyprint?

----------------------Kill the process in Single Modle

select * from master..sysprocesses

where dbid=db_id('DB Name')

--Kill spid

也写了个小脚本执行这个操作:

[sql] view plaincopyprint?

DECLARE @kid varchar(100)

SET @kid=''

SELECT @kid=@kid+'KILL'+CAST(spid as Varchar(10))

FROM master..sysprocesses

WHERE dbid=DB_ID('DB Name')

PRINT @kid

EXEC(@kid)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐