您的位置:首页 > 数据库

[MSSQL]查看服务器工作状态

2012-02-16 12:37 363 查看
---查看服务器工作状态
create function fgetsstatus(  
@servername varchar(50) --服务器名  
,@userid varchar(50)='sa' --用户名,如果为nt验证方式,则为空  
,@password varchar(50)='' --密码  

) returns varchar(20)  
as  
begin  
declare @re varchar(20),@ire int --返回状态  
declare @srvid int --定义服务器、数据库集id  
declare @err int,@src varchar(255), @desc varchar(255) --错误处理变量  

--创建sqldmo对象  
exec @err=sp_oacreate 'sqldmo.sqlserver',@srvid output  
if @err <>0 goto lberr  

--连接服务器  
if isnull(@userid,'')='' --如果是 Nt验证方式  
begin  
  exec @err=sp_oasetproperty @srvid,'loginsecure',1  
  if @err <>0 goto lberr  

  exec @err=sp_oamethod @srvid,'connect',null,@servername  
end  
else  
  exec @err=sp_oamethod @srvid,'connect',null,@servername,@userid,@password  

if @err <>0 goto lberr  

--获取服务器状态  
exec @err=sp_oagetproperty @srvid,'Status',@ire output  
if @err <>0 goto lberr  

set @re=case @ire when 0 then '未知'  
  when 1 then '运行...'  
  when 2 then '暂停'  
  when 3 then '停止...'  
  when 4 then '正在启动...'  
  when 5 then '正在启动停止...'  
  when 6 then '连接...'  
  when 7 then '正在暂停...' end  
return(@re)  
lberr:  
exec sp_oageterrorinfo NULL, @src out, @desc out  
declare @errb varbinary(4)  
set @errb=cast(@err as varbinary(4))  
exec master..xp_varbintohexstr @errb,@re out  
set @re='错误号: '+@re  
  +char(13)+'错误源: '+@src  
  +char(13)+'错误描述: '+@desc  
return(@re)  
end  
go  

select dbo.fgetsstatus('192.168.102.208','sa','sa')

    
--------------------  
运行...
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: