none
TESTAR CONEXÃO COM SERVIDOR ATRAVÉS DE UMA QUERY RRS feed

  • Pergunta

  • Ola!

    Tenho uma query onde tenho que dar um select em outro servidor.

    Preciso saber se o servidor está online antes do dar o select, hoje tenho o erro abaixo:

    select LOJA from [SERVER_NAME].BANCOTESTE.dbo.TABELATESTE  where data = '20141001'

    OLE DB provider "SQLNCLI10" for linked server "SERVER_NAME" returned message "Login timeout expired".
    OLE DB provider "SQLNCLI10" for linked server "SERVER_NAME" returned message "A network-related or instance-specific error has occurred while establishing a connection to SQL Server. Server is not found or not accessible. Check if instance name is correct and if SQL Server is configured to allow remote connections. For more information see SQL Server Books Online.".
    Msg 65535, Level 16, State 1, Line 0
    SQL Server Network Interfaces: Error Locating Server/Instance Specified [xFFFFFFFF]. 

    Alguém sabe?

    Grato.

    segunda-feira, 1 de dezembro de 2014 12:49

Respostas

Todas as Respostas

  • Deleted
    segunda-feira, 1 de dezembro de 2014 13:22
  • Obrigado José Diz, o erro continua idêntico, não passa pelo BEGIN CATCH.

    segunda-feira, 1 de dezembro de 2014 20:05
  • Deleted
    segunda-feira, 1 de dezembro de 2014 20:35
  • Mais uma vez agradeço, mas não deu certo, abaixo estão dois dos vários testes que fiz com sua ajuda:

    declare  @qcpassa nvarchar(4000);
    BEGIN TRY
        SELECT * from [10.160.79.158].premium71.dbo.filiais
    END TRY
    BEGIN CATCH
    set @qcpassa = ERROR_MESSAGE()
    END CATCH;
    if @qcpassa is null
       raiserror('Foi possível conectar ao servidor',1,1)
    else
      raiserror('Não foi possível conectar ao servidor', 16, 2)

    --************************

    declare @srvr nvarchar(128), @retval int;
    set @srvr = '[10.160.79.158]';
    begin try
        exec @retval = sys.sp_testlinkedserver @srvr;
    end try
    begin catch
        set @retval = sign(@@error);
    end catch;

    -- (2)
    IF @retval = 0


      begin
       SELECT * from [10.160.79.158].premium71.dbo.filiais

      end
    else 
      raiserror('Não foi possível conectar ao servidor SERVER_NAME', 16, 2);

    terça-feira, 2 de dezembro de 2014 10:46
  • Deleted
    terça-feira, 2 de dezembro de 2014 15:57
  • Valeu, deu certo, tirei o '[' e tratou o erro!

    Abs

    Danilo

    terça-feira, 2 de dezembro de 2014 16:45
  • Deleted
    • Marcado como Resposta DANILO RUSSO segunda-feira, 8 de dezembro de 2014 15:08
    terça-feira, 2 de dezembro de 2014 17:32