Nei post precedenti abbiamo visto un pò cosa sia questa nuova versione di SQL Server, LocalDB, e ora in questo post vediamo come poter innanzi tutto avviare tale versione e come effettuare dei collegamenti. Ricordo, infatti, che la LocalDB è un’istanza di SQL Server che appena installata risulta essere “spenta” così come verrà automaticamente disattivata dopo un tot di inutilizzo.
Quindi il primo passo è attivare un collegamento iniziale a LocalDB che ci permetterà, ad istanza avviata, di fare le nostre operazioni.
Per avviare una sessione di LocalDB sarà sufficiente anche una semplice connessione tramite un file UDL; creiamo quindi un piccolo file con estensione UDL per esempio sul nostro desktop:
Apriamo il file UDL e come provider scegliamo SQL Server Native Client 11.0
Spostiamoci sul tab Connection e immettiamo il testo (localdb)\v11.0 nella text box Select or enter a server name lasciando le altre impostazioni come da figura.
Facendo un semplice Test Connection, dopo pochi secondi, dovrebbe comparire il messaggio come da figura
Non appena la connessione andrà a buon fine in quel momento l’istanza di LocalDb sarà stata creata con successo al percorso riportato in figura (che potrà cambiare per i suoi dati random come il percorso dello User ma tutto il resto dovrebbe essere uguale).
Come vedete c’è tutto: i database di sistema, gli errorlog i file di trace etc… etc…
La stringa di connessione che si verrà a creare nel file UDL sarà del tutto simile alla seguente:
Provider=SQLNCLI11.1;Integrated Security=SSPI;Persist Security Info=False;User ID=””;Initial Catalog=””;
Data Source=(localdb)\v11.0;Initial File Name=””;Server SPN=””
Ora vediamo come sfruttare altre tipologie di accesso: per esempio vediamo come creare un sorgente ODBC di tipo User DSN. Avviare il programma di Data Sources (ODBC) dal pannello di controllo:
Selezionare il tab User DSN e cliccare sul pulsante Add:
Selezionare come driver per la connessione il SQL Server Native Client 11.0
Riempire i primi due campi a piacimento mentre nel campo Server immettere il valore (localdb)\v11.0 e cliccare su Next.
Scegliere la prima opzione e cliccare su Next
Volendo possiamo anche decidere se effettuare un attach di qualche altro database; cliccare sul pulsante Next per proseguire.
Verrà mostrata una maschera di riepilogo.
Cliccando sul pulsante Test Data Source se tutto è configurato correttamente dovrà tornare a video la seguente mascherina:
Ora vediamo come collegarsi al LocalDB dal SSMS: abbiamo due possibilità o tramite Linked Server oppure direttamente inserendo il nome dell’istanza nella maschera di login. Vediamo come.
Per usare un linked server è sufficiente, per esempio, aggiungere un link al collegamento ODBC creato in precedenza.
Dopo pochi secondi il linked-server verso il LocalDB dovrebbe funzionare senza alcun problema:
Effettuare un collegamento diretto all’istanza, invece, non sarà così intuitivo. SI potrebbe pensare di inserire la stringa (localdb)\v11.0 ma sembra non funzionare (non saprei il motivo per ora) e quindi bisogna usare un pò di astuzia. Se ricordate bene tra i file creati appena l’istanza LoclDB veniva avviata c’erano pure gli error.log…gli error.log contengono anche informazioni circa l’istanza e le porte su cui è in ascolto.
Proviamo ad aprire un error.log di un LocalDB:
Bhè c’è un dato molto interessante come potete constatare e cioè la stringa di connessione almeno al protocollo pipe:
2011-07-18 14:15:24.76 spid8s SQL Trace ID 1 was started by login “sa”.
2011-07-18 14:15:24.76 spid8s Server name is ‘PC800735\LOCALDB#5D9A6F0C’. This is an informational message only. No user action is required.
2011-07-18 14:15:24.77 spid11s Server local connection provider is ready to accept connection on [ \\.\pipe\LOCALDB#5D9A6F0C\tsql\query ].
C’è anche quella di nomeserver\nomeistanza ma non mi ha funzionato correttamente; usando la stringa pipe, invece, tutto è andato a buon fine:
Come avete visto collegarsi ad un LocalDB è molto semplice e basta seguire alcuni accorgimenti che per ora ho trovato; magari in futuro sarà più “friendly” il collegamento ma per ora è più che sufficiente 😀