none
Vincular banco de dados remotamente e acessar os dados das tabelas RRS feed

  • Pergunta

  • Consigo vincular o o banco de dados porem não consigo abrir em transact sql

    Criei um vinculo chamado vinc

    tento abrir o linkserver cirado

    use vinc

    recebo a mensagem de erro

    Mensagem 911, Nvel 16, Estado 1, Linha 1

    O banco de dados 'vinc' não existe. Certifique-se de que o nome tenha sido digitado corretamente.

    tentei com

    use [vinc].[bd_educacao]

    O banco de dados 'vinc' não existe. Certifique-se de que o nome tenha sido digitado corretamente

    Alguem poderia me ajudar?


    Membro do forum

    terça-feira, 16 de setembro de 2014 14:16

Respostas

  • Paulo,

    Para acessar o linkedserver de outra instância SQL, você deve concatenar à sua instrução SQL, como indicado abaixo:

    USE SeuBanco
    GO
    
    SELECT * FROM [SeuLinkedServer].SeuBanco.dbo.SuaTabela;
    GO

    Caso o banco esteja na mesma instância SQL do banco que você está conectado, então apenas utilize:

    USE SeuBanco
    GO
    
    SELECT * FROM OutroBanco.dbo.SuaTabela;
    GO
    


    Se ajudou na sua solução, não esqueça de marcar como resposta !

    Abraços,

    Durval Ramos
    Microsoft Partner | MTA | MCSA - SQL Server 2012 | MCSE - Data Platform
    ----------------------------------
    Se foi resolvido clique "Marcar como resposta" e se foi útil "Votar como Útil"
    • Sugerido como Resposta Tulio Rosa terça-feira, 16 de setembro de 2014 19:05
    • Marcado como Resposta Durval RamosModerator terça-feira, 11 de novembro de 2014 01:04
    terça-feira, 16 de setembro de 2014 16:29
    Moderador
  • Paulo,

    Se estamos falando sobre linkedserver então você poderá visualizar os vínculos criados em sua instância SQL utilizando o comando:

    --Execute no servidor IP "192" (LOCAL)
    sp_linkedservers GO

    Deste modo, no servidor "192.168.0.153" você poderá abrir uma nova consulta no SSMS e verificar se o seu linkedserver foi criado. Caso esteja listado o IP "200.167.255.10,1436" então basta utilizar como indiquei anteriormente, senão será necessário criar o linkedserver nesta instância SQL (local) para esta instância SQL (remota). Segue abaixo um exemplo para criação de um linkedserver:

    --Crie o linkedserver no servidor IP "192" (LOCAL)
    EXEC sp_addlinkedserver @server=N'VINC', @srvproduct=N'', @provider=N'SQLNCLI', @datasrc=N'200.167.252.10\SuaInstanciaSQL, 1436'; GO sp_addlinkedsrvlogin @rmtsrvname ='VINC' , @useself = 'FALSE' , @locallogin = null , @rmtuser ='sa' --Seu Usuário no servidor "IP 200" , @rmtpassword = 'SuaSenha' --Senha do usuário no IP "200" GO --Teste seu "vínculo" consultando uma tabela de um banco do IP "200" SELECT TOP 10 * FROM [VINC].SeuBancoRemoto.dbo.SuaTabela; GO


    Se ajudou na sua solução, não esqueça de marcar como resposta !

    Abraços,

    Durval Ramos
    Microsoft Partner | MTA | MCSA - SQL Server 2012 | MCSE - Data Platform
    ----------------------------------
    Se foi resolvido clique "Marcar como resposta" e se foi útil "Votar como Útil"
    quarta-feira, 17 de setembro de 2014 18:33
    Moderador

Todas as Respostas

  • Paulo,

    Para acessar o linkedserver de outra instância SQL, você deve concatenar à sua instrução SQL, como indicado abaixo:

    USE SeuBanco
    GO
    
    SELECT * FROM [SeuLinkedServer].SeuBanco.dbo.SuaTabela;
    GO

    Caso o banco esteja na mesma instância SQL do banco que você está conectado, então apenas utilize:

    USE SeuBanco
    GO
    
    SELECT * FROM OutroBanco.dbo.SuaTabela;
    GO
    


    Se ajudou na sua solução, não esqueça de marcar como resposta !

    Abraços,

    Durval Ramos
    Microsoft Partner | MTA | MCSA - SQL Server 2012 | MCSE - Data Platform
    ----------------------------------
    Se foi resolvido clique "Marcar como resposta" e se foi útil "Votar como Útil"
    • Sugerido como Resposta Tulio Rosa terça-feira, 16 de setembro de 2014 19:05
    • Marcado como Resposta Durval RamosModerator terça-feira, 11 de novembro de 2014 01:04
    terça-feira, 16 de setembro de 2014 16:29
    Moderador
  • para ser mais preciso

    eu abro o meu banco de dados local no endereço 192.168.0.153

    depois neste banco de dados aberto eu vinculo o banco de dados em outro endereço

    apenas um exemplo

    200.167.252.10,1436

    o meu vinculo recebe o nome de vinc

    agora abro nova consulta no microsoft sql server management studio

    digito

    use banco_de_dados

    que esta no servidor vinculado e recebo a mensagem de que o vinculo não existe


    Membro do forum

    terça-feira, 16 de setembro de 2014 19:45
  • Paulo,

    Se estamos falando sobre linkedserver então você poderá visualizar os vínculos criados em sua instância SQL utilizando o comando:

    --Execute no servidor IP "192" (LOCAL)
    sp_linkedservers GO

    Deste modo, no servidor "192.168.0.153" você poderá abrir uma nova consulta no SSMS e verificar se o seu linkedserver foi criado. Caso esteja listado o IP "200.167.255.10,1436" então basta utilizar como indiquei anteriormente, senão será necessário criar o linkedserver nesta instância SQL (local) para esta instância SQL (remota). Segue abaixo um exemplo para criação de um linkedserver:

    --Crie o linkedserver no servidor IP "192" (LOCAL)
    EXEC sp_addlinkedserver @server=N'VINC', @srvproduct=N'', @provider=N'SQLNCLI', @datasrc=N'200.167.252.10\SuaInstanciaSQL, 1436'; GO sp_addlinkedsrvlogin @rmtsrvname ='VINC' , @useself = 'FALSE' , @locallogin = null , @rmtuser ='sa' --Seu Usuário no servidor "IP 200" , @rmtpassword = 'SuaSenha' --Senha do usuário no IP "200" GO --Teste seu "vínculo" consultando uma tabela de um banco do IP "200" SELECT TOP 10 * FROM [VINC].SeuBancoRemoto.dbo.SuaTabela; GO


    Se ajudou na sua solução, não esqueça de marcar como resposta !

    Abraços,

    Durval Ramos
    Microsoft Partner | MTA | MCSA - SQL Server 2012 | MCSE - Data Platform
    ----------------------------------
    Se foi resolvido clique "Marcar como resposta" e se foi útil "Votar como Útil"
    quarta-feira, 17 de setembro de 2014 18:33
    Moderador