select 连接数=count(distinct hostname)
from master..sysprocesses
where hostname<>'' and dbid=db_id('要查询的库名')如果在局域网中能正常取出连接的程序数量,但如果数据库是在远程的主机上,比如虚拟主机上就每次都是0,是什么原因?有其他方法吗?
from master..sysprocesses
where hostname<>'' and dbid=db_id('要查询的库名')如果在局域网中能正常取出连接的程序数量,但如果数据库是在远程的主机上,比如虚拟主机上就每次都是0,是什么原因?有其他方法吗?
创建一台名为 Server2 的链接服务器:
USE master
EXEC sp_addlinkedserver 'server2 ',N 'SQL Server '
创建一个映射,使用帐号 Sa 和密码 Password 连接到链接服务器 Server2:
EXEC sp_addlinkedsrvlogin 'Server2 ', 'false ', NULL, 'Sa ', 'Password '
查询数据:
SELECT * FROM Server2.dbname.dbo.tablename
同样的程序,执行那段读取连接数的sql语句,如果连接的数据库是局域网的,就正确,如果连接的是远程数据库,就是0。但如果用SQL Server Management Studio来执行那段又能得到1,就是SQL Server Management Studio本身的一个连接。
select 连接数=count(distinct hostname)
from master..sysprocesses
where hostname<>'' and dbid=db_id('要查询的库名')
and spid > 50