Eu tenho um trabalho que é executado em várias regiões do mundo. Dependendo de qual região está em execução e em qual fuso horário está, o trabalho pode não ser executado. Ele costuma GOTO
chegar ao final e informa que foi pulado devido ao tempo e conclui.
Isso funciona como esperado sem problemas.
O problema: há momentos em que um servidor vinculado mais abaixo no proc está sob carga muito pesada. Sabemos disso e não podemos evitá-lo - portanto, não consultamos o servidor vinculado neste momento.
Mas, ainda estamos recebendo um erro como se fosse consultado:
Não é possível obter o conjunto de linhas do esquema "DBSCHEMA_TABLES_INFO" para o provedor OLE DB "SQLNCLI11" para a mensagem de retorno do servidor vinculado "Erro não especificado". [SQLSTATE 01000] (Erro 7412) O provedor OLE DB "SQLNCLI11" para o servidor vinculado retornou a mensagem "Tempo limite da consulta expirado". [SQLSTATE 01000] (Erro 7412). A etapa falhou.
Os servidores vinculados são validados quando um proc começa a causar essa verificação de esquema que expira?
Isso é um palpite, mas eu tentaria habilitar a validação de esquema lento para o servidor vinculado sob carga pesada:
Fonte
Como verificar apenas os metadados do servidor vinculado ao consultar o próprio servidor vinculado.
Outra solução alternativa pode ser usar instruções SQL dinâmicas para consultar o servidor vinculado