none
Consulta Linked Server RRS feed

  • Pergunta

  • situação: Um servidor (A) com um linked server configurado apontado para outro servidor(B) com outro linked server (C) configurado . Estou no servidor A e quero fazer uma consulta em uma view do linked server do servidor B ou seja, alcançar o servidor C que é um linked server configurado no servidor B. Como faço isso via código??
    Rombesso
    quinta-feira, 10 de fevereiro de 2011 14:14

Respostas

  • Rombesso

    é simples... abaixo um exemplo...

    --servidor B
    create view vw_Teste
    as
    select name from LinkServerC.master.sys.databases
    
    --Server A
    select * from LinkServerB.master.dbo.vw_teste
    

    att.
    Marcelo Fernandes


    MCP, MCDBA, MCSA, MCTS.
    Se útil, classifique!!!
    Me siga no twitter: @marcelodba

    quinta-feira, 10 de fevereiro de 2011 19:34
    Moderador
  • Olá,

    Entendo que você quer economizar em código, mas a sua configuração de SQL vai ficar muito mal desenhada o que pode te gerar problemas no futuro.

    Imagine uma situação de problema com este código. Qdo você for tentar identificar onde falhou vc vai precisar olhar o Linked Server entre A & B e depois entre B & C.

    E eu nem estou mencionando problemas de 'Double Hop' da authenticação...

    Recomendo que você pense novamente no Desenho do seu ambiente para evitar outros problemas maiores.

    você pode sei lá utilizar Replicação entre server B & C e assim utilizar somente um Linked Server ....

    Abs,


    Fábio Oliveira Support Engieer | Microsoft Enterprise and Developer Support
    • Marcado como Resposta Edgar Rombesso quarta-feira, 23 de fevereiro de 2011 13:40
    segunda-feira, 14 de fevereiro de 2011 15:27

Todas as Respostas

  • Rombesso

    é simples... abaixo um exemplo...

    --servidor B
    create view vw_Teste
    as
    select name from LinkServerC.master.sys.databases
    
    --Server A
    select * from LinkServerB.master.dbo.vw_teste
    

    att.
    Marcelo Fernandes


    MCP, MCDBA, MCSA, MCTS.
    Se útil, classifique!!!
    Me siga no twitter: @marcelodba

    quinta-feira, 10 de fevereiro de 2011 19:34
    Moderador
  • Isso só vai dá certo, se o usuario usado para autenticar no linked server estiver "aberto" para todos.

    PQ não criar um linked server do servidor A para C?

    []'s!

     


    http://www.diaadiasql.com.br
    quinta-feira, 10 de fevereiro de 2011 19:57
  • então...até tenho o linked server do A para o C...mas esta sendo desenvolvido um código para uma aplicação e para não ter que usar 3 códigos distintos eu queria utilizar-me desta situação acima...assim eu teria somente 1 código me facilitando no aplicativo...
    Rombesso
    sexta-feira, 11 de fevereiro de 2011 11:12
  • Marcelo..sua situação de código acima já era utilizada...mas mesmo assim obrigado pela tentativa...
    Rombesso
    sexta-feira, 11 de fevereiro de 2011 11:13
  • Edgar,

    Me diga uma coisa.

    Na sua aplicação este acesso aos outros servidores será somente em algumas funcionalidades do sistema? Ou por acaso já no processo de logon?

    Como já foi destacado não seria mais fácil e simples estabelecer somente o linked server entre o Server A e C?


    Pedro Antonio Galvão Junior [MVP | Microsoft Evangelist | Microsoft Partner | Engenheiro de Softwares | Especialista em Banco de Dados | SorBR.Net | Professor Universitário | MSIT.com]
    domingo, 13 de fevereiro de 2011 01:11
    Moderador
  • Então Junior...será utilizada uma aplicação em .NET ....ae queria colocar o código da pesquisa trazendo informação do Server B e C diretamente para o Server A...um único código entende....não queria ter que criar dois códigos para trazer informações distintas e depois um terceiro para agrupar essas informações na hora de exibir no aplicativo...a idéia é que ao exibir o aplicativo ele já me traga os dados de B e C agregados para exibição em A.
    Rombesso
    segunda-feira, 14 de fevereiro de 2011 13:54
  • Olá,

    Entendo que você quer economizar em código, mas a sua configuração de SQL vai ficar muito mal desenhada o que pode te gerar problemas no futuro.

    Imagine uma situação de problema com este código. Qdo você for tentar identificar onde falhou vc vai precisar olhar o Linked Server entre A & B e depois entre B & C.

    E eu nem estou mencionando problemas de 'Double Hop' da authenticação...

    Recomendo que você pense novamente no Desenho do seu ambiente para evitar outros problemas maiores.

    você pode sei lá utilizar Replicação entre server B & C e assim utilizar somente um Linked Server ....

    Abs,


    Fábio Oliveira Support Engieer | Microsoft Enterprise and Developer Support
    • Marcado como Resposta Edgar Rombesso quarta-feira, 23 de fevereiro de 2011 13:40
    segunda-feira, 14 de fevereiro de 2011 15:27