SQL Server Collegati – Linked Server

Per eseguire da un SQL Server una query su un db posto su un altro SQL Server bisogna collegare i server in modo che il primo possa vedere il secondo.
Lato SQL Server da cui si deve eseguire la query bisogna collegare il secondo server.
Operazione fatta con SQL Server Management Studio.
Connettersi, nell’esplora oggetti cercare tra le cartelle: Oggetti Server -> Server collegati
srvcollegati1
Click col tasto destro sulla cartella Server collegati  e selezionare: “Nuovo server collegato…”
Si aprirà una finestra:
Raggiungere la scheda: Generale
srvcollegati2
Compilare i campi:

  • Server Collegato: inserire il nome del server (se è in dominio) oppure l’indirizzo IP
  • Tipo Server: selezionare SQL Server

Raggiungere la scheda: Sicurezza
srvcollegati3
Selezionare l’ultima opzione, compilare con nome e password dell’utente SQL del db del server di destinazione.
È possibile anche selezionare la voce “Verranno effettuate con il consenso di sicurezza corrente dell’account di accesso” se l’utente che si sta utilizzando è creato con medesime credenziali su entrambi i SQL Server ed i db.
Click su OK
Il nuovo SQL Server apparirà sotto la directory: Server Collegati 
srvcollegati4
È ovvio che nella lista dei db del server collegato saranno visualizzati solo i db che l’utente inserito prima ha i diritti di vedere, idem per i diritti di lettura e scrittura.

Eseguire una query che punta al db del server collegato

Nella sintassi solita di SQL inserire il Linked Server come una normale tabella…

SELECT *
FROM [NOMESERVER].[NOMEdb].[dbo].[NOMETABELLA]

Anche la gestione delle tabelle del db collegato sarà identica a quella di una normale tabella, potendola associare ad una variabile, utilizzarla in un join….

USE dbLOCALE
SELECT T1.ANNO, T1.CLIENTE, T1.ARTICOLO, T_EST.POSIZIONE
FROM TABELLA_LOCALE AS T1 INNER JOIN
[NOMESERVER].[NOMEdb].[dbo].[TABELLA] AS T_EST

Rispondi