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)
1.直接在Management Studio中设置相关数据库的Properties:Options-->Restrict Access下设置MULTI/SINGLE_USER。
2.若是其他人设置Server为单用户模式,或者其他未知进程占用操作DB,再使用第一种方法发现该DB的Properties是打不开的,这时应该使用如下T-SQL进行操作:
?
?
[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)
相关文章推荐
- SqlServer: 单用户模式下查杀相关进程实现单/多用户转换 .
- SqlServer: 单用户模式下查杀相关进程实现单/多用户转换
- 如何在Excel或sqlserver中写用户函数实现数字货币向英文转换集锦
- 通过程序实现SMARTFORMS文本编辑模式在WORD和TEXT文本之间转换
- 书接前文,用多进程模式实现fibonnachi并发计算
- 云计算架构基础之多租户数据架构 (二) 三种模式实现相关的一些模式
- 线程同步——用户模式下线程同步——Interlocked实现线程同步
- Linux网络编程:TCP服务器(单进程多用户),使用select方法实现
- 简单用户登录模式的实现
- 《Orange’s 一个操作系统的实现》3.保护模式7-特权级转移(通过调用门转移目标段-有特权级转换-理论)
- 用户在文本框中输入需要转换的十进制数,通过点击3个按钮在标签中显示结果。(点击一个实现一个)
- PHP CLI模式下PCNTL扩展实现多进程服务
- 牛逼的Android UI--第18章 与用户交互相关的设计模式 (中)
- 我的毕业论文-Linux核心模式下的用户进程研究
- Linux系统进程的几个用户ID及其转换方法
- SqlServer:此数据库处于单用户模式,导致数据库无法删除的处理
- Linux网络编程:TCP服务器(单进程多用户),使用select方法实现
- Android实现3G类usb模式自动转换
- Android4.2多用户模式的结构与实现
- RGB HSV HLS三种色彩模式转换(C语言实现)