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
Click col tasto destro sulla cartella Server collegati e selezionare: “Nuovo server collegato…”
Si aprirà una finestra:
Raggiungere la scheda: Generale
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
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
È 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