Um linked server (ou servidor vinculado) no SQL Server é um servidor remoto que você pode acessar a partir do seu servidor local. Isso permite que você execute consultas que envolvem dados de ambos os servidores, como se estivesse trabalhando com um único banco de dados. O linked server é configurado para se conectar a um servidor remoto, e uma vez configurado, você pode acessar e consultar os dados desse servidor remoto diretamente do seu servidor local. Isso é útil em cenários onde você precisa acessar dados de diferentes fontes ou integrar dados de sistemas legados com um novo sistema, por exemplo.
Após ter criado os servidores, no servidor principal, que neste exemplo é chamado de DEKSTOP..., habilite o linkedserver abrindo uma consulta e digite o script abaixo, alterando o nome de acordo com o nome do seu servidor.
EXEC sp_addlinkedserver
@server = 'LinkedServer2', -- Nome do Linked Server
@srvproduct = '',
@provider = 'SQLNCLI', -- Provedor OLE DB
@datasrc = 'localhost'; -- Nome/instância do segundo servidor
GO
EXEC sp_addlinkedsrvlogin
@rmtsrvname = 'LinkedServer2',
@useself = 'true', -- Reutilizar as credenciais do Windows
@locallogin = NULL; -- Usar o login atual do Windows
GO
OU utilize o usuário e senha:
EXEC sp_addlinkedsrvlogin
@rmtsrvname = 'LinkedServer2',
@useself = 'false',
@locallogin = NULL,
@rmtuser = 'usuario', -- Substitua pelo usuário do segundo servidor
@rmtpassword = 'senha'; -- Substitua pela senha do usuário
GO
Para saber seu usuário windows, pressione windows + r, cmd, whoami e pressione enter.
identificar usuários:
USE [ouv_uni]; -- Substitua pelo nome do seu banco de dados
GO
-- Verificar o login associado ao banco de dados
SELECT name, type_desc FROM sys.database_principals WHERE type IN ('S', 'U');
📌Linkedserver – Consulta
SELECT * FROM sys.servers WHERE is_linked = 1
Sendo que = 1 significa ativo
📌Linkedserver - Criar
EXEC sp_addlinkedserver
@server='ARMG317', --NomeDoLinkedServer
@srvproduct='SQL Server',
@provider='SQLNCLI', -- NomeDoProvider
@datasrc='ARMG317'; -- NomeDoServidor
📌 Linkedserver ativar ou inativar
Usando o procedimento armazenado sp_serveroption.
Ativar:
EXEC sp_serveroption 'NomeDoLinkedServer', 'rpc out', true;
EXEC sp_serveroption 'NomeDoLinkedServer', 'rpc', true;
Inativar:
EXEC sp_serveroption 'NomeDoLinkedServer', 'rpc out', false;
EXEC sp_serveroption 'NomeDoLinkedServer', 'rpc', false;
📌 Linkedserver - Deletar
EXEC sp_dropserver 'NomeDoLinkedServer', 'droplogins';
📌 Linkedserver- Identificar tabelas de outro servidor
SELECT * FROM ARMG317.DM_RH.sys.tables;
SELECT * FROM NomeDoLinkedServer.NomeDoBancoDeDadosRemoto.sys.tables;
➡️ Conectando...
Depois de ter criado o linked server para utilizar a tabela nas consultas, utilize:
[NomeDoServidorRemoto].[NomeDoBancoDeDados].[Esquema].[nometabela]
Exemplo prático:
from [ARMG317].[DM_RH].[Dbo].[tbDocenteAutonomo]