Condividi tramite


SQL Server Express LocalDB (database locale di SQL Server Express)

Si applica a:SQL Server

Local DB di Microsoft SQL Server Express è una funzionalità di SQL Server Express destinata agli sviluppatori. È disponibile in SQL Server Express con servizi avanzati. In SQL Server 2025 (17.x) e versioni successive è disponibile in SQL Server Express Edition.

L'installazione di Local DB comporta la copia di un set minimo di file necessari ad avviare il motore di database di SQL Server. Dopo l'installazione di LocalDB, è possibile avviare una connessione usando una stringa di connessione speciale. Quando ci si connette, l'infrastruttura SQL Server necessaria viene creata automaticamente e avviata, consentendo all'applicazione di usare il database senza attività di configurazione complesse. Con Strumenti di sviluppo gli sviluppatori dispongono di un motore di database di SQL Server che consente di scrivere e verificare il codice Transact-SQL senza dover gestire un'istanza del server completa di SQL Server.

Supporto di installazione

LocalDB è una funzionalità selezionabile durante l'installazione di SQL Server Express ed è disponibile quando si scaricano i file di installazione. Se scarichi il supporto, scegli Express Advanced o il pacchetto LocalDB.

Il programma di installazione di Local DB SqlLocalDB.msi è disponibile nel supporto di installazione per tutte le edizioni, ad eccezione di Express Core. Si trova nella cartella <installation_media_root>\<LCID>_ENU_LP\x64\Setup\x64. LCID è un identificatore delle impostazioni locali o un codice del linguaggio. Un valore LCID, ad esempio 1033, fa riferimento alle impostazioni locali en-US.

In alternativa, è possibile installare Local DB tramite il Programma di installazione di Visual Studio oppure nell'ambito del carico di lavoro Elaborazione ed archiviazione dati o del carico di lavoro Sviluppo ASP.NET e Web o come componente singolo.

Installare LocalDB

Installare Local DB tramite l'installazione guidata o tramite il programma SqlLocalDB.msi. Local DB è un'opzione per l'installazione di SQL Server Express Local DB.

Selezionare Local DB nella pagina Selezione funzionalità/Funzionalità condivise durante l'installazione. È possibile un'unica installazione dei file binari di Local DB per ogni versione principale del motore di database di SQL Server. È possibile avviare più processi del motore di database e in tutti verranno usati gli stessi file binari. Un'istanza del motore di database SQL Server avviata come Local DB presenta le stesse limitazioni di SQL Server Express.

Un'istanza di SQL Server Express Local DB viene gestita tramite l'utilità SqlLocalDB.exe. SQL Server Express Local DB deve essere usato al posto della funzionalità dell'istanza utente di SQL Server Express, ora deprecata.

Descrizione

Il programma di installazione di Local DB usa il programma SqlLocalDB.msi per installare i file necessari nel computer. Dopo l'installazione, LocalDB è un'istanza di SQL Server Express in grado di creare e aprire database DI SQL Server. I file di sistema del database sono archiviati nel percorso locale AppData, che generalmente è nascosto. Ad esempio: %LOCALAPPDATA%\Microsoft\Microsoft SQL Server Local DB\Instances\LocalDBApp1\. I file del database utente sono archiviati nel percorso indicato dall'utente, in genere nella cartella %LOCALAPPDATA%\Microsoft\Microsoft SQL Server Local DB\Instances\<InstanceName>.

Per altre informazioni sull'inclusione di Local DB in un'applicazione, vedere Panoramica dei dati locali di Visual Basic e Creare un database e aggiungere tabelle in Visual Studio.

Per altre informazioni sull'API LocalDB, vedere Informazioni di riferimento su SQL Server Express LocalDB.

Con l'utilità SqlLocalDB è possibile creare nuove istanze di Local DB, avviare e arrestare un'istanza di Local DB nonché includere opzioni per gestire Local DB. Per altre informazioni sull'utilità SqlLocalDB, vedere Utilità SqlLocalDB.

Le regole di confronto dell'istanza per Local DB sono impostate su SQL_Latin1_General_CP1_CI_AS e non possono essere modificate. Le regole di confronto a livello di database, di colonna e di espressione sono supportate normalmente. Ai database indipendenti vengono applicate le regole di confronto dei metadati e di tempdb definite da Regole di confronto dei database indipendenti.

Restrizioni

  • Local DB non può essere gestito in modalità remota tramite SQL Server Management Studio.

  • LocalDB non può essere un sottoscrittore della replica di tipo merge.

  • LocalDB non supporta il FILESTREAM.

  • Local DB consente solo code locali per Service Broker.

  • Un'istanza di Local DB di proprietà degli account predefiniti, ad esempio NT AUTHORITY\SYSTEM, può avere problemi di gestibilità a causa del reindirizzamento del file system di Windows. Usare invece un account di Windows normale come proprietario.

Istanze automatiche e denominate

Local DB supporta due tipi di istanze, ovvero istanze automatiche e istanze denominate. I diversi utenti di un computer possono avere istanze con lo stesso nome. Ogni istanza viene eseguita come utente corrispondente nel proprio processo.

Istanze automatiche

Le istanze automatiche di Local DB sono pubbliche. Vengono create e gestite automaticamente per l'utente e possono essere usate da qualsiasi applicazione. Un'istanza automatica di Local DB esiste per ogni versione di Local DB installata nel computer dell'utente. Le istanze automatiche di Local DB forniscono una gestione continua dell'istanza. Non c'è necessità di creare l'istanza in quanto già funziona. Questa funzionalità consente di eseguire facilmente la migrazione e l'installazione dell'applicazione in un computer diverso. Se nel computer di destinazione è installata la versione specificata di Local DB, l'istanza automatica di Local DB per quella versione è disponibile anche nel computer di destinazione. Le istanze automatiche di Local DB hanno di un modello speciale per il nome dell'istanza che appartiene a uno spazio dei nomi riservato. Le istanze automatiche prevengono conflitti di nomi con le istanze denominate di LocalDB. Il nome per l'istanza automatica è MSSQLLocalDB.

Istanze denominate

Le istanze denominate di Local DB sono private. Sono di proprietà di una sola applicazione, responsabile della creazione e della gestione dell'istanza. Le istanze denominate forniscono l'isolamento dalle altre istanze e possono migliorare le prestazioni riducendo la contesa di risorse con altri utenti del database. Le istanze denominate devono essere create in modo esplicito dall'utente tramite l'API di gestione di Local DB o in modo implicito tramite il file app.config per un'applicazione gestita, sebbene anche l'applicazione gestita possa usare l'API. Ogni istanza denominata di Local DB dispone di una versione associata di Local DB che punta al relativo set di file binari di Local DB. Il nome di un'istanza di Local DB è composto da un massimo di 128 caratteri con tipo di dati sysname. I nomi delle istanze denominate normali di SQL Server invece possono essere solo nomi NetBIOS normali di 15 caratteri ASCII. Nel nome di un'istanza di LocalDB può essere incluso qualsiasi carattere Unicode che sia valido all'interno di un nome file. Un'istanza denominata che utilizza un nome automatico diventa un'istanza automatica.

Istanze condivise di Local DB

Per supportare scenari dove più utenti del computer devono connettersi a una sola istanza di Local DB, Local DB supporta la condivisione dell'istanza. Il proprietario di un'istanza può decidere di consentire agli altri utenti del computer di connettersi all'istanza. È possibile condividere le istanze automatiche e denominate di Local DB. Per condividere un'istanza di Local DB, un utente ne seleziona un nome condiviso (alias). Poiché il nome condiviso è visibile a tutti gli utenti del computer, questo nome condiviso deve essere univoco nel computer. Il nome condiviso di un'istanza di Local DB ha lo stesso formato dell'istanza denominata di Local DB.

Solo un amministratore del computer può creare un'istanza condivisa di Local DB. La condivisione di un'istanza di Local DB può essere annullata da un amministratore o dal proprietario dell'istanza condivisa di Local DB. Per condividere e annullare la condivisione di un'istanza di LocalDB, usare i LocalDBShareInstance metodi e LocalDBUnShareInstance dell'API LocalDB oppure le opzioni di condivisione e annullamento della condivisione dell'utilità SqlLocalDB .

Avviare Local DB e connettersi a Local DB

Questa sezione descrive come connettersi a un'istanza automatica, a un'istanza denominata o a un'istanza condivisa.

Connettersi all'istanza automatica

Il modo più semplice per usare Local DB è connettersi all'istanza automatica di proprietà dell'utente corrente tramite la stringa di connessione Server=(localdb)\MSSQLLocalDB;Integrated Security=true. Per connettersi a un database specifico usando il nome del file, usare una stringa di connessione simile a Server=(LocalDB)\MSSQLLocalDB;Integrated Security=true;AttachDbFileName=D:\Data\MyDB1.mdf.

Nota

La prima volta che un utente prova a connettersi a Local DB in un computer, l'istanza automatica deve essere creata e avviata. Il tempo aggiuntivo necessario per la creazione dell'istanza può determinare un errore di tentativo di connessione generando un messaggio di timeout. Quando accade, attendere pochi secondi per consentire il completamento del processo di creazione, quindi riconnettersi.

Creare un'istanza denominata e connettersi

Oltre all'istanza automatica, Local DB supporta anche istanze denominate. Usare il programma SqlLocalDB.exe per creare, avviare e arrestare un'istanza denominata di Local DB. Per altre informazioni su SqlLocalDB.exe, vedere Utilità SqlLocalDB.

REM Create an instance of LocalDB
"C:\Program Files\Microsoft SQL Server\160\Tools\Binn\SqlLocalDB.exe" create LocalDBApp1
REM Start the instance of LocalDB
"C:\Program Files\Microsoft SQL Server\160\Tools\Binn\SqlLocalDB.exe" start LocalDBApp1
REM Gather information about the instance of LocalDB
"C:\Program Files\Microsoft SQL Server\160\Tools\Binn\SqlLocalDB.exe" info LocalDBApp1

L'ultima riga nell'esempio di codice precedente restituisce informazioni simili alla tabella seguente.

Categoria valore
Nome LocalDBApp1
Versione <Current version>
Nome condiviso ""
Proprietario <Your Windows user>
Creazione automatica No
Stato Running
Ultimo orario di inizio <Date and time>
Nome pipe dell'istanza np:\\.\pipe\LOCALDB#F365A78E\tsql\query

Nota

Se nell'applicazione viene usata una versione di .NET Framework precedente alla versione 4.0.2 è necessario connettersi direttamente alla named pipe di Local DB. Il valore Nome pipe dell'istanza è la named pipe su cui l'istanza di Local DB è in ascolto. La parte del nome pipe dell'istanza che segue LOCALDB# verrà modificata a ogni avvio dell'istanza di Local DB. Per connettersi all'istanza di Local DB tramite SQL Server Management Studio, digitare il nome pipe dell'istanza nella casella Nome server della finestra di dialogo Connetti al motore di database. Dal programma personalizzato è possibile stabilire una connessione all'istanza di Local DB usando una stringa di connessione simile a SqlConnection conn = new SqlConnection(@"Server=np:\\.\pipe\LOCALDB#F365A78E\tsql\query");

Connettersi a un'istanza condivisa di Local DB

Per connettersi a un'istanza condivisa di Local DB aggiungere \.\ (barra rovesciata + punto + barra rovesciata) alla stringa di connessione per fare riferimento allo spazio dei nomi riservato per le istanze condivise. Ad esempio, per connettersi a un'istanza condivisa di Local DB denominata AppData usare (localdb)\.\AppData come stringa di connessione. Un utente che si connette a un'istanza condivisa di Local DB di cui non è proprietario, deve disporre di un account di accesso con autenticazione di Windows o autenticazione di SQL Server.

Risoluzione dei problemi

LocalDB viene eseguito come istanza leggera nel contesto dell'utente corrente, il che significa che la maggior parte dei problemi riguarda lo stato dell'istanza, le autorizzazioni dei file o la mancata corrispondenza della versione anziché la configurazione a livello di server. I passaggi seguenti consentono di diagnosticare e risolvere i problemi di LocalDB più comuni.

Eseguire l'aggiornamento alla versione più recente

Molti problemi comuni di LocalDB vengono risolti eseguendo l'aggiornamento alla versione più recente di SQL Server Express. Scaricare la versione più recente dalla sezione Supporti di installazione e installare LocalDB. La versione più recente sostituisce i file binari localDB esistenti e include correzioni per problemi noti di stabilità e compatibilità.

Dopo l'aggiornamento, eliminare e ricreare le istanze per usare i file binari aggiornati:

sqllocaldb stop MSSQLLocalDB
sqllocaldb delete MSSQLLocalDB
sqllocaldb create MSSQLLocalDB
sqllocaldb start MSSQLLocalDB

Attenzione

L'eliminazione di un'istanza rimuove tutti i database associati a tale istanza. Eseguire il backup di tutti i dati importanti prima dell'eliminazione.

Verificare lo stato dell'installazione e dell'istanza

Eseguire i comandi seguenti per verificare che LocalDB sia installato e controllare lo stato dell'istanza:

sqllocaldb info
sqllocaldb info MSSQLLocalDB

Il primo comando elenca tutte le istanze. Il secondo comando mostra la versione, il proprietario e lo stato (in esecuzione o arrestato) di un'istanza specifica. Se sqllocaldb non viene riconosciuto, LocalDB potrebbe non essere installato o il percorso di installazione non si trova nella variabile di sistema PATH .

Per avviare un'istanza che non è in esecuzione:

sqllocaldb start MSSQLLocalDB

Esaminare i log degli errori

LocalDB scrive i log degli errori nella cartella dell'utente AppData :

%LOCALAPPDATA%\Microsoft\Microsoft SQL Server Local DB\Instances\MSSQLLocalDB\error.log

Aprire questo file in un editor di testo per verificare la presenza di messaggi di errore specifici, errori di avvio o problemi di configurazione.

Autorizzazioni

Un'istanza di Local DB di SQL Server Express è un'istanza creata da un utente per l'uso personale. Qualsiasi utente del computer è in grado di creare un database mediante un'istanza di Local DB, archiviando i file nel profilo utente ed eseguendo il processo con le relative credenziali. Per impostazione predefinita, l'accesso all'istanza di Local DB è limitato al proprietario. I dati contenuti in Local DB sono protetti dall'accesso ai file di database tramite il file system. Se i file di database dell'utente sono archiviati in un percorso condiviso, il database può essere aperto da qualsiasi utente con accesso al file system in quel percorso usando un'istanza di Local DB di cui è proprietario. Se i file di database si trovano in un percorso protetto, ad esempio la cartella dati utente, solo quell'utente e gli amministratori con accesso a quella cartella, possono aprire il database. I file di Local DB possono essere aperti solo da un'istanza di Local DB alla volta.

Local DB viene sempre eseguito nel contesto di sicurezza dell'utente. LocalDB non viene mai eseguito con le credenziali del gruppo Administrators locale. Di conseguenza, tutti i file di database usati da un'istanza di Local DB devono essere accessibili usando l'account di Windows dell'utente proprietario, senza considerare l'appartenenza al gruppo di amministratori locali.