SQL Server 2014 Express LocalDB
Microsoft SQL Server 2014 Express LocalDB
è una modalità di esecuzione di SQL Server Express destinata agli sviluppatori di programmi. LocalDB
l'installazione copia un set minimo di file necessari per avviare il motore di database SQL Server. Una volta LocalDB
installato, gli sviluppatori avviano una connessione usando una stringa di connessione speciale. Quando ci si connette, l'infrastruttura di SQL Server necessaria viene creata e avviata automaticamente, consentendo all'applicazione di usare il database senza attività di configurazione complesse o di tempo. 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. Un'istanza di SQL Server ExpressLocalDB
viene gestita usando l'utilitàSqlLocalDB.exe
. LocalDB
SQL Server Express deve essere usato al posto della funzionalità dell'istanza utente SQL Server Express deprecata.
Installazione di LocalDB
Il metodo primario di installazione LocalDB
consiste nell'usare il programma di SqlLocalDB.msi. LocalDB
è un'opzione quando si installa uno SKU di SQL Server 2014 Express. Selezionare LocalDB
nella pagina Selezione funzionalità durante l'installazione di SQL Server Express. È possibile installare solo un file LocalDB
binario per ogni versione principale SQL Server motore di database. È 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 con LocalDB
le stesse limitazioni di SQL Server Express
Descrizione
Il LocalDB
programma di installazione usa il programma di SqlLocalDB.msi per installare i file necessari nel computer. Una volta installato, LocalDB
è un'istanza di SQL Server Express che può creare e aprire database SQL Server. I file del database di sistema per il database sono archiviati nel percorso locale AppData degli utenti che generalmente è nascosto. Ad esempio C:\Users<\user>\AppData\Local\Microsoft\Microsoft SQL Server Database locale\Istanze\LocalDBApp1\. I file di database utente vengono archiviati in cui l'utente designa, in genere da qualche parte nella cartella C:\Users\<user>\Documents\ .
Per altre informazioni sull'inclusione LocalDB
in un'applicazione, vedere panoramica dei dati locali di Visual Studio, Procedura dettagliata: Creazione di un database localDB SQL Server e Procedura dettagliata: Connessione ai dati in un database localDB (SQL Server Windows Forms) di Visual Studio.
Per altre informazioni sull'API, vedere SQL Server Express Informazioni di riferimento sull'API dell'istanza di LocalDB e Sulla funzione LocalDBStartInstance.LocalDB
L'utilità SqlLocalDb può creare nuove istanze di LocalDB
, avviare e arrestare un'istanza di LocalDB
e include opzioni che consentono di gestire LocalDB
. Per altre informazioni sull'utilità SqlLocalDb, vedere Utilità SqlLocalDB.
Le regole di confronto dell'istanza per LocalDB
è impostata 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 Contained Database Collations.
Restrizioni
LocalDB
non può essere un sottoscrittore di replica di tipo merge.
LocalDB
non supporta FILESTREAM.
LocalDB
consente solo code locali per Service Broker.
Un'istanza di proprietà degli account predefiniti, ad esempio NT AUTHORITY\SYSTEM, può avere problemi di gestibilità a causa del LocalDB
reindirizzamento del file system windows; Usare invece un normale account windows come proprietario.
Istanze denominate e automatiche
LocalDB
supporta due tipi di istanze: istanze automatiche e istanze denominate.
Le istanze automatiche di
LocalDB
sono pubbliche. Vengono create e gestite automaticamente per l'utente e possono essere usate da qualsiasi applicazione. Esiste un'istanza automatica diLocalDB
per ogni versione diLocalDB
installata nel computer dell'utente. Le istanze automatiche diLocalDB
forniscono la gestione di istanze senza problemi. Non c'è necessità di creare l'istanza in quanto già funziona. In tal modo è possibile migrare e installare e l'applicazione con facilità in un computer diverso. Se nel computer di destinazione è installata la versione specificata diLocalDB
, l'istanza automatica diLocalDB
per quella versione è disponibile anche sul computer di destinazione. Le istanze automatiche di hanno un modello speciale per il nome dell'istanzaLocalDB
che appartiene a uno spazio dei nomi riservato. Ciò impedisce conflitti di nomi con istanze denominate diLocalDB
. Il nome per l'istanza automatica è MSSQLLocalDB.Le istanze denominate di
LocalDB
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 o in modo implicito tramite ilLocalDB
file app.config per un'applicazione gestita (anche se l'applicazione gestita può usare l'API, se necessario). Ogni istanza denominata diLocalDB
ha una versione associataLocalDB
che punta al rispettivo set diLocalDB
file binari. Il nome dell'istanza di un èsysname
tipoLocalDB
di dati e può avere fino a 128 caratteri. Ciò è diverso dalle istanze denominate regolari di SQL Server, che limita i nomi ai nomi NetBIOS regolari di 16 caratteri ASCII. Il nome di un'istanza di può contenere tutti i caratteri Unicode legali all'interno diLocalDB
un nome file. Un'istanza denominata che utilizza un nome dell'istanza automatica diventa un'istanza automatica.
I diversi utenti di un computer possono avere istanze con lo stesso nome. Ogni istanza è un processo diverso in esecuzione come utente diverso.
Istanze condivise di LocalDB
Per supportare scenari in cui più utenti del computer devono connettersi a una singola istanza di , LocalDB
supporta la condivisione di LocalDB
istanze. Il proprietario di un'istanza può decidere di consentire agli altri utenti del computer di connettersi all'istanza. È possibile condividere sia istanze automatiche che denominate di LocalDB
. Per condividere un'istanza di LocalDB
, 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 per un'istanza di LocalDB
ha lo stesso formato dell'istanza denominata di LocalDB
.
Solo un amministratore nel computer può creare un'istanza condivisa di LocalDB
. Un'istanza condivisa di LocalDB
può essere non condivisa da un amministratore o dal proprietario dell'istanza condivisa di LocalDB
. Per condividere e annullare la condivisione di un'istanza di LocalDB
, usare i LocalDBShareInstance
metodi e LocalDBUnShareInstance
dell'API oppure le opzioni di condivisione e non condivise dell'utilità LocalDB
SqlLocalDb.
Avvio e connessione a LocalDB
Connessione all'istanza automatica
Il modo più semplice da usare LocalDB
consiste nel connettersi all'istanza automatica di proprietà dell'utente corrente usando 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 in un computer tenta di connettersi a LocalDB
, 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. In una situazione simile, attendere pochi secondi per consentire il completamento del processo di creazione, quindi riconnettersi.
Creazione e connessione alle istanze denominate
Oltre all'istanza automatica, LocalDB
supporta anche istanze denominate. Usare il programma SqlLocalDB.exe per creare, avviare e arrestare un'istanza denominata di LocalDB
. Per altre informazioni su SqlLocalDB.exe, vedere Utilità SqlLocalDB.
REM Create an instance of LocalDB
"C:\Program Files\Microsoft SQL Server\120\Tools\Binn\SqlLocalDB.exe" create LocalDBApp1
REM Start the instance of LocalDB
"C:\Program Files\Microsoft SQL Server\120\Tools\Binn\SqlLocalDB.exe" start LocalDBApp1
REM Gather information about the instance of LocalDB
"C:\Program Files\Microsoft SQL Server\120\Tools\Binn\SqlLocalDB.exe" info LocalDBApp1
Nell'ultima riga sopra indicata vengono restituite informazioni simili alle seguenti.
Nome | "LocalDBApp1" |
Versione | <Versione corrente> |
Nome condiviso | "" |
Proprietario | "<Utente di Windows>" |
Creazione automatica | No |
State | in esecuzione |
Ultima ora inizio | <Data e ora> |
Nome pipe dell'istanza | np:\\.\pipe\LOCALDB#F365A78E\tsql\query |
Nota
Se l'applicazione usa una versione di .NET prima della versione 4.0.2, è necessario connettersi direttamente alla pipe denominata dell'oggetto LocalDB
. Il valore del nome della pipe dell'istanza è la pipe denominata su cui è in ascolto l'istanza di LocalDB
. La parte del nome della pipe dell'istanza dopo LOCALDB# cambierà ogni volta che viene avviata l'istanza di LocalDB
. Per connettersi all'istanza di usando SQL Server Management Studio, digitare il nome della pipe dell'istanza nella casella Nome server della finestra di LocalDB
dialogo Connetti al motore di database. Dal programma personalizzato è possibile stabilire una connessione all'istanza di usando una stringa di LocalDB
connessione simile a SqlConnection conn = new SqlConnection(@"Server=np:\\.\pipe\LOCALDB#F365A78E\tsql\query");
Connessione a un'istanza condivisa di LocalDB
Per connettersi a un'istanza condivisa di LocalDB
aggiungere .\ (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 denominata AppData
usare una stringa di LocalDB
connessione, (localdb)\.\AppData
ad esempio parte della stringa di connessione. Un utente che si connette a un'istanza condivisa di LocalDB
cui non è proprietario deve avere un'autenticazione di Windows o SQL Server l'account di accesso per l'autenticazione.
Risoluzione dei problemi
Per informazioni sulla risoluzione dei problemi, vedere Risoluzione dei problemiLocalDB
SQL Server 2012 Express LocalDB.
Autorizzazioni
Un'istanza di SQL Server 2014 ExpressLocalDB
è un'istanza creata da un utente per l'uso. Qualsiasi utente nel computer può creare un database usando un'istanza di LocalDB
, archiviando i file nel proprio profilo utente ed eseguendo il processo con le proprie credenziali. Per impostazione predefinita, l'accesso all'istanza di LocalDB
è limitato al proprietario. I dati contenuti in sono protetti dall'accesso LocalDB
al file system ai file di database. Se i file di database utente vengono archiviati in un percorso condiviso, il database può essere aperto da chiunque disponga dell'accesso al file system a tale percorso usando un'istanza di LocalDB
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 LocalDB
file possono essere aperti solo da un'istanza di LocalDB
alla volta.
Nota
LocalDB
viene sempre eseguito nel contesto di sicurezza degli utenti; ovvero non LocalDB
viene mai eseguito con le credenziali del gruppo dell'amministratore locale. Ciò significa che tutti i file di database usati da un'istanza LocalDB
devono essere accessibili usando l'account Windows dell'utente proprietario, senza considerare l'appartenenza al gruppo Administrators locale.