查看和删除MS sql当前连接

1.通过系统的“性能”来查看:
开始->管理工具->性能(或者是运行里面输入 mmc)然后通过
添加计数器添加 SQL 的常用统计 然后在下面列出的项目里面选择用户连接就可以时时查询到数据库的连接数了。
不过此方法的话需要有访问那台计算机的权限,就是要通过windows账户登陆进去才可以添加此计数器。

2.通过系统表来查询:
SELECT * FROM
[Master].[dbo].[SYSPROCESSES] WHERE [DBID]
IN
(
SELECT
   [DBID]
FROM
   [Master].[dbo].[SYSDATABASES]
WHERE
   NAME=’databaseName’
)
databaseName 是需要查看的数据库,然后查询出来的行数,就是当前的连接数。不过里面还有一些别的状态可以做参考用。

3.通过系统过程来查询:
SP_WHO ‘loginName’
loginName 是当然登陆Sql的用户名,一般程序里面都会使用一个username来登陆SQL这样通过这个用户名就能查看到此用户名登陆之后占用的连接了。
如果不写loginName,那么返回的就是所有的连接。

————————————————————————————————————————————————————————————————-

删除的数据库的连接:
执行Drop   Database之前怎么用T-SQL语句强行停止一切连接到要删除的数据库的连接
方法一:
use   master  
declare   @s   nvarchar(1000),@dbname   varchar(200)  
set   @dbname=’jerry’  
   
declare   tb   cursor   local    
for  
select   N’kill   ‘+cast(spid   as   varchar)  
from   master..sysprocesses    
where   dbid=db_id(@dbname)  
   
open   tb    
fetch   next   from   tb   into   @s  
while   @@fetch_status=0  
begin  
exec(@s)  
fetch   next   from   tb   into   @s  
end  
close   tb  
deallocate   tb  

方法二:
alter   database   jerry   set   single_user   with   rollback   immediate
–恢复
set   Alter   database   jerry   set   MULTI_USER  

发表评论?

0 条评论。

发表评论