不知道,直接用一个不可能出错的SQL语句来运行如果出错应该就是连接问题。
eg:   Select top 1 * from RemoteServer.master..sysobjects

解决方案 »

  1.   

    /*
    在查询分析器中调用sqldmo判断远程SQL是否启动邹建 2003.11-----------------*//*--调用实例
    select 服务器状态=dbo.fgetsstatus('zj','','')--*/
    if exists(select 1 from sysobjects where id=object_id('fgetsstatus') and objectproperty(id,'IsInlineFunction')=0)
    drop function fgetsstatus
    gocreate 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
      

  2.   

    --调用上面的这个就行了.select 服务器状态=dbo.fgetsstatus('服务器名','sa','密码')