Usuário com melhor resposta
Buscando dados de outros servidores

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.
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' Endselect
* from sysserversExec
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.CUSTOWHERE
CODPROD='4700051/52/53'SELECT
* FROM SERVERWIN.CUSTO100.dbo.FICHAIMPRESSA- Marcado como Resposta Sérgio Rezende Júnior quarta-feira, 5 de agosto de 2009 14:17
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'
GOonde 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
-
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' Endselect
* from sysserversExec
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.CUSTOWHERE
CODPROD='4700051/52/53'SELECT
* FROM SERVERWIN.CUSTO100.dbo.FICHAIMPRESSA- Marcado como Resposta Sérgio Rezende Júnior quarta-feira, 5 de agosto de 2009 14:17