Linked Server in SQL Server
Pagina 1 di 4
Spesso le applicazioni che operano su database di SQL Server necessitano di accedere a dati residenti su unistanza diversa del DBMS di casa Microsoft. Tale istanza diversa potrebbe trovarsi fisicamente sulla stessa macchina dellistanza principale oppure potrebbe risiedere su una macchina diversa.
Una soluzione in questi casi è quella di utilizzare i cosiddetti linked server (server collegati), che consentono alle applicazioni di accedere ai dati gestiti da diverse istanze di SQL Server. In realtà i linked server possono anche essere utilizzati per accedere ad altre sorgenti di dati, quindi anche di tipo non SQL Server. Nel presente articolo tuttavia ci soffermeremo sugli aspetti correlati allutilizzo dei linked server per accedere ad informazioni memorizzate in un database SQL Server.
Prima di addentrarci nel vedere come impostare un linked server soffermiamoci brevemente sulla relativa architettura di base. Un linked server è sostanzialmente un meccanismo che consente ad una query (interrogazione sui dati) di essere inviata ad un server avente una determinata istanza di SQL Server per poi essere reindirizzata e processata da unaltra istanza di SQL Server. I risultati di tale operazione vengono poi restituiti al client che ha inviato linterrogazione.
La seguente immagine serve a chiarire meglio tale architettura

Tale immagine mostra un generico client che per effettuare una query può connettersi sia ad un application server sia direttamente ad un server su cui gira unistanza di SQL Server. Se il client (o lapplicazione che gira sullapplication server) invia al Server1 una query che richiede dati residenti sul Server2 si parla di query distribuita. Definire sul Server1 un linked server per il Server2 consente di effettuare questo tipo di query.
Una query distribuita che estrae informazioni dal Server2 tramite un linked server definito sul Server1 sarà simile alla seguente
SELECT name as Nome database remoto FROM SERVER2.master.sys.databases
cioè la sintassi dellorigine dati presente nella clausola FROM è la seguente
<nome_linked_server>.<nome_database>.<schema>.<oggetto>
Vediamo adesso come impostare un linked server tramite SQL Server Management Studio. Per prima cosa espandiamo il nodo Server Objects e clicchiamo con il tasto destro del mouse sulla voce Linked Servers, selezionando lopzione New Linked Server








