none
Buscando dados de outros servidores RRS feed

  • Pergunta

  • Galera bom dia.

    Preciso de uma dica.

    Estou querendo fazer um select que me retorne informações de um outro servidor ao qual não estou logado no momento. Por exemplo:

    -Estou executando uma consulta no servidor1 e gostaria fazer o select no servidorsql\local.

    Não consigo fazer o select pois o query analiser acusa que a "\" é inválida.

    Agradeço a ajuda de todos.

    quarta-feira, 4 de julho de 2007 13:57

Respostas

  • Sergio,

     

    Neste caso, a melhor solução seria criar um linked server entre estes dois servidores, através de link você poderá fazer acesso direto aos dados e também utilizar query ad-hoc.

     

    Veja o exemplo de como criar um linked server entre SQL Server 2000:

     

    If Exists (select srvname='TESTE2003' from master..sysservers)

    Begin

    Exec sp_dropserver

    @server='TESTE2003'

    Exec sp_droplinkedsrvlogin

    @rmtsrvname='TESTE2003',

    @locallogin='JR'

    Exec sp_addlinkedserver

    @server='TESTE2003',

    @srvproduct='SQL Server'

    Exec sp_addlinkedsrvlogin

    @rmtsrvname='TESTE2003',

    @useself='False',

    @locallogin='JR',

    @rmtuser='JR',

    @rmtpassword='12345678'

    End

     

    select * from sysservers

     

    Exec sp_addlinkedserver

    @server='SERVER',

    @srvproduct='SQL Server'

    Exec sp_addlinkedsrvlogin

    @rmtsrvname='SERVER',

    @useself='False',

    @locallogin='JR',

    @rmtuser='JR',

    @rmtpassword='3825'

     

    SELECT * FROM SERVERWIN.CUSTO100.dbo.CUSTO

    WHERE CODPROD='4700051/52/53'

     

    SELECT * FROM SERVERWIN.CUSTO100.dbo.FICHAIMPRESSA

    quarta-feira, 4 de julho de 2007 17:23

Todas as Respostas

  • se o linked server estiver ok. sem problemas coloque o nome da maquina entre [ ] , mais vc. precisa configurar um linked server para isso segue exemplo do books on line:

     

    EXEC sp_addlinkedserver
        'SEATTLESales',
        N'SQL Server'
    GO

     

    onde  seattlesles e o nome do seu servidor onde esta o sql.

     

    depois vc. precisa mapear um login para o acesso. ( vc. contra exemplos no books on line tambem )

     

    sua sintaxe de sql fica assim

     

    select  * from nome_servidor.banco_de_dados.owner.Tabela

     

    ou

     

    select * From openquery(nome_linked_server,'select * from banco.onwer.tabela')

     

     

     

    qualquer coisa retorne

     

     

     

     

    quarta-feira, 4 de julho de 2007 14:04
  • Sergio,

     

    Neste caso, a melhor solução seria criar um linked server entre estes dois servidores, através de link você poderá fazer acesso direto aos dados e também utilizar query ad-hoc.

     

    Veja o exemplo de como criar um linked server entre SQL Server 2000:

     

    If Exists (select srvname='TESTE2003' from master..sysservers)

    Begin

    Exec sp_dropserver

    @server='TESTE2003'

    Exec sp_droplinkedsrvlogin

    @rmtsrvname='TESTE2003',

    @locallogin='JR'

    Exec sp_addlinkedserver

    @server='TESTE2003',

    @srvproduct='SQL Server'

    Exec sp_addlinkedsrvlogin

    @rmtsrvname='TESTE2003',

    @useself='False',

    @locallogin='JR',

    @rmtuser='JR',

    @rmtpassword='12345678'

    End

     

    select * from sysservers

     

    Exec sp_addlinkedserver

    @server='SERVER',

    @srvproduct='SQL Server'

    Exec sp_addlinkedsrvlogin

    @rmtsrvname='SERVER',

    @useself='False',

    @locallogin='JR',

    @rmtuser='JR',

    @rmtpassword='3825'

     

    SELECT * FROM SERVERWIN.CUSTO100.dbo.CUSTO

    WHERE CODPROD='4700051/52/53'

     

    SELECT * FROM SERVERWIN.CUSTO100.dbo.FICHAIMPRESSA

    quarta-feira, 4 de julho de 2007 17:23