SQL Server 2016 Express LocalDBSQL Server 2016 Express LocalDB

Per contenuti relativi alle versioni precedenti di SQL Server, vedere SQL Server 2014 Express LocalDB.For content related to previous versions of SQL Server, see SQL Server 2014 Express LocalDB.

Microsoft SQL Server 2016 Express LocalDB è una funzionalità di SQL Server Express destinata agli sviluppatori.Microsoft SQL Server 2016 Express LocalDB is a feature of SQL Server Express targeted to developers. È disponibile in SQL Server 2016 Express with Advanced Services.It is available on SQL Server 2016 Express with Advanced Services.

Con l'installazione deldatabase locale viene copiato un set di file minimo necessario per avviare il Motore di database di SQL ServerSQL Server Database Engine.LocalDB installation copies a minimal set of files necessary to start the Motore di database di SQL ServerSQL Server Database Engine. Una volta installato LocalDB, è possibile avviare una connessione tramite una stringa di connessione speciale.Once LocalDB is installed, you can initiate a connection using a special connection string. Durante la connessione, l'infrastruttura SQL ServerSQL Server necessaria viene creata automaticamente e avviata, consentendo all'applicazione di usare il database senza attività di configurazione complesse.When connecting, the necessary SQL ServerSQL Server infrastructure is automatically created and started, enabling the application to use the database without complex configuration tasks. Con Developer Tools gli sviluppatori dispongono di un Motore di database di SQL ServerSQL Server Database Engine che consente di scrivere e verificare il codice Transact-SQLTransact-SQL senza dover gestire un'istanza del server completa di SQL ServerSQL Server.Developer Tools can provide developers with a Motore di database di SQL ServerSQL Server Database Engine that lets them write and test Transact-SQLTransact-SQL code without having to manage a full server instance of SQL ServerSQL Server.

Per provarlo:Try it out!

  • Per scaricare e installare SQL Server 2016 Express, passare ai download di SQL Server.To download and install SQL Server 2016 Express, go to SQL Server downloads. LocalDB è una funzionalità selezionabile durante l'installazione ed è disponibile quando si scarica il supporto.LocalDB is a feature you select during installation, and is available when you download the media. Se si scarica il supporto, scegliere Express Advanced o il pacchetto LocalDB .If you download the media, either choose Express Advanced or the LocalDB package.

  • Se si ha un account di Azure,Have an Azure account? fare clic qui per creare rapidamente una macchina virtuale in cui è già installato SQL Server 2016SQL Server 2016 .Then go here to spin up a Virtual Machine with SQL Server 2016SQL Server 2016 already installed.

Installare LocalDBInstall LocalDB

Installare LocalDB tramite l'installazione guidata o usando il programma SqlLocalDB.msi.Install LocalDB through the installation wizard or by using the SqlLocalDB.msi program. LocalDB è un'opzione dell'installazione di SQL Server 2016 ExpressSQL Server 2016 Express.LocalDB is an option when installing SQL Server 2016 ExpressSQL Server 2016 Express.

Selezionare LocalDB nella pagina Selezione funzionalità durante l'installazione.Select LocalDB on the Feature Selection/Shared Features page during installation. È possibile un'unica installazione dei file binari di LocalDB per ogni versione principale del Motore di database di SQL ServerSQL Server Database Engine .There can be only one installation of the LocalDB binary files for each major Motore di database di SQL ServerSQL Server Database Engine version. È possibile avviare più processi del Motore di databaseDatabase Engine e in tutti verranno usati gli stessi file binari.Multiple Motore di databaseDatabase Engine processes can be started and will all use the same binaries. Un'istanza del Motore di database di SQL ServerSQL Server Database Engine avviata come LocalDB presenta le stesse limitazioni di SQL Server ExpressSQL Server ExpressAn instance of the Motore di database di SQL ServerSQL Server Database Engine started as the LocalDB has the same limitations as SQL Server ExpressSQL Server Express

Un'istanza di SQL Server ExpressSQL Server Express LocalDB viene gestita con l'utilità SqlLocalDB.exe .An instance of SQL Server ExpressSQL Server Express LocalDB is managed by using the SqlLocalDB.exe utility. SQL Server ExpressSQL Server Express LocalDB deve essere usato al posto della funzionalità dell'istanza utente SQL Server ExpressSQL Server Express deprecata. LocalDB should be used in place of the SQL Server ExpressSQL Server Express user instance feature which is deprecated.

DescrizioneDescription

Il programma di installazione di LocalDB usa il programma SqlLocalDB.msi per installare i file necessari nel computer.The LocalDB setup program uses the SqlLocalDB.msi program to install the necessary files on the computer. Una volta installato, LocalDB è un'istanza di SQL Server ExpressSQL Server Express con cui è possibile creare e aprire database di SQL ServerSQL Server .Once installed, LocalDB is an instance of SQL Server ExpressSQL Server Express that can create and open SQL ServerSQL Server databases. I file del database di sistema per il database sono archiviati nel percorso locale AppData degli utenti che generalmente è nascosto.The system database files for the database are stored in the users' local AppData path which is normally hidden. Ad esempio C:\Users\<user>\AppData\Local\Microsoft\Microsoft SQL Server Local DB\Instances\LocalDBApp1\.For example C:\Users\<user>\AppData\Local\Microsoft\Microsoft SQL Server Local DB\Instances\LocalDBApp1\. I file del database utente sono archiviati nel percorso indicato dall'utente, in genere nella cartella C:\Users\<user>\Documents\.User database files are stored where the user designates, typically somewhere in the C:\Users\<user>\Documents\ folder.

Per altre informazioni su come includere LocalDB in un'applicazione, vedere la documentazione su Visual StudioVisual Studio relativa a Cenni preliminari sui dati locali, Procedura dettagliata: Creazione di un database LocalDB di SQL Server e Procedura dettagliata: Connessione ai dati di un database SQL Server Express LocalDB (Windows Form).For more information about including LocalDB in an application, see the Visual StudioVisual Studio documentation Local Data Overview, Walkthrough: Creating a SQL Server LocalDB Database, and Walkthrough: Connecting to Data in a SQL Server LocalDB Database (Windows Forms).

Per altre informazioni sull'API LocalDB , vedere le pagine relative al riferimento all'API dell'istanza di SQL Server Express LocalDB e alla funzione LocalDBStartInstance.For more information about the LocalDB API, see SQL Server Express LocalDB Instance API Reference and LocalDBStartInstance Function.

Con l'utilità SqlLocalDb è possibile creare nuove istanze di LocalDB, avviare e arrestare un'istanza di LocalDB, nonché includere opzioni per consentire la gestione di LocalDB.The SqlLocalDb utility can create new instances of LocalDB, start and stop an instance of LocalDB, and includes options to help you manage LocalDB. Per altre informazioni sull'utilità SqlLocalDb, vedere Utilità SqlLocalDB.For more information about the SqlLocalDb utility, see SqlLocalDB Utility.

Le regole di confronto dell'istanza per LocalDB sono impostate su SQL_Latin1_General_CP1_CI_AS e non possono essere modificate.The instance collation for LocalDB is set to SQL_Latin1_General_CP1_CI_AS and cannot be changed. Le regole di confronto a livello di database, di colonna e di espressione sono supportate normalmente.Database-level, column-level, and expression-level collations are supported normally. Ai database indipendenti vengono applicate le regole di confronto dei metadati e di tempdb definite da Contained Database Collations.Contained databases follow the metadata and tempdb collations rules defined by Contained Database Collations.

RestrizioniRestrictions

LocalDB non può essere un Sottoscrittore della replica di tipo merge.LocalDB cannot be a merge replication subscriber.

LocalDB non supporta FILESTREAM.LocalDB does not support FILESTREAM.

LocalDB consente solo code locali per Service Broker.LocalDB only allows local queues for Service Broker.

Un'istanza di LocalDB 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.An instance of LocalDB owned by the built-in accounts such as NT AUTHORITY\SYSTEM can have manageability issues due to windows file system redirection; Instead use a normal windows account as the owner.

Istanze denominate e automaticheAutomatic and Named Instances

LocalDB supporta due tipi di istanze, ovvero istanze automatiche e istanze denominate.LocalDB supports two kinds of instances: Automatic instances and named instances.

  • Le istanze automatiche di LocalDB sono pubbliche.Automatic instances of LocalDB are public. Vengono create e gestite automaticamente per l'utente e possono essere usate da qualsiasi applicazione.They are created and managed automatically for the user and can be used by any application. Un'istanza automatica di LocalDB esiste per ogni versione di LocalDB installato nel computer dell'utente.One automatic instance of LocalDB exists for every version of LocalDB installed on the user’s computer. Le istanze automatiche di LocalDB forniscono una gestione continua dell'istanza.Automatic instances of LocalDB provide seamless instance management. Non c'è necessità di creare l'istanza in quanto già funziona.There is no need to create the instance; it just works. In tal modo è possibile migrare e installare e l'applicazione con facilità in un computer diverso.This allows for easy application installation and migration to a different computer. Se nel computer di destinazione è installata la versione specificata di LocalDB , l'istanza automatica di LocalDB per quella versione è disponibile anche sul computer di destinazione.If the target machine has the specified version of LocalDB installed, the automatic instance of LocalDB for that version is available on the target machine as well. Le istanze automatiche di LocalDB dispongono di un modello speciale per il nome dell'istanza che appartiene a uno spazio dei nomi riservato.Automatic instances of LocalDB have a special pattern for the instance name that belongs to a reserved namespace. In tal modo si evitano conflitti di nomi con le istanze denominate di LocalDB.This prevents name conflicts with named instances of LocalDB. Il nome per l'istanza automatica è MSSQLLocalDB.The name for the automatic instance is MSSQLLocalDB.

  • Le istanze denominate di LocalDB sono private.Named instances of LocalDB are private. Sono di proprietà di una sola applicazione, responsabile della creazione e della gestione dell'istanza.They are owned by a single application that is responsible for creating and managing the instance. Le istanze denominate forniscono l'isolamento dalle altre istanze e possono migliorare le prestazioni riducendo la contesa di risorse con altri utenti del database.Named instances provide isolation from other instances and can improve performance by reducing resource contention with other database users. Le istanze denominate devono essere create in modo esplicito dall'utente tramite l'API di gestione di LocalDB o in modo implicito tramite il file app.config per un'applicazione gestita, sebbene anche l'applicazione gestita possa usare l'API.Named instances must be created explicitly by the user through the LocalDB management API or implicitly via the app.config file for a managed application (although managed application may also use the API, if desired). Ogni istanza denominata di LocalDB dispone di una versione associata di LocalDB che punta al relativo set di file binari di LocalDB .Each named instance of LocalDB has an associated LocalDB version that points to the respective set of LocalDB binaries. Il nome di un'istanza di LocalDB è composto dal tipo di dati sysname e da un massimo di 128 caratteri.The instance name of a LocalDB is sysname data type and can have up to 128 characters. I nomi delle istanze denominate normali di SQL ServerSQL Server invece possono essere solo nomi NetBIOS normali di 16 caratteri ASCII. Nel nome di un'istanza di LocalDB può essere incluso qualsiasi carattere Unicode che sia valido all'interno di un nome file.(This differs from regular named instances of SQL ServerSQL Server, which limits names to regular NetBIOS names of 16 ASCII chars.) The name of an instance of LocalDB can contain any Unicode characters that are legal within a filename. Un'istanza denominata che utilizza un nome dell'istanza automatica diventa un'istanza automatica.A named instance that uses an automatic instance name becomes an automatic instance.

    I diversi utenti di un computer possono avere istanze con lo stesso nome.Different users of a computer can have instances with the same name. Ogni istanza è un processo diverso in esecuzione come utente diverso.Each instance is a different processes running as a different user.

Istanze condivise di LocalDBShared Instances of LocalDB

Per supportare scenari dove più utenti del computer devono connettersi a una sola istanza di LocalDB, LocalDB supporta la condivisione dell'istanza.To support scenarios where multiple users of the computer need to connect to a single instance of LocalDB, LocalDB supports instance sharing. Il proprietario di un'istanza può decidere di consentire agli altri utenti del computer di connettersi all'istanza.An instance owner can choose to allow the other users on the computer to connect to his instance. È possibile condividere le istanze automatiche e denominate di LocalDB .Both automatic and named instances of LocalDB can be shared. Per condividere un'istanza di LocalDB , un utente ne seleziona un nome condiviso (alias).To share an instance of LocalDB a user selects a shared name (alias) for it. Poiché il nome condiviso è visibile a tutti gli utenti del computer, questo nome condiviso deve essere univoco nel computer.Because the shared name is visible to all users of the computer, this shared name must be unique on the computer. Il nome condiviso di un'istanza di LocalDB ha lo stesso formato dell'istanza denominata di LocalDB.The shared name for an instance of LocalDB has the same format as the named instance of LocalDB.

Solo un amministratore del computer può creare un'istanza condivisa di LocalDB.Only an administrator on the computer can create a shared instance of LocalDB. La condivisione di un'istanza di LocalDB può essere annullata da un amministratore o dal proprietario dell'istanza condivisa di LocalDB.A shared instance of LocalDB can be unshared by an administrator or by the owner of the shared instance of LocalDB. Per condividere e annullare la condivisione di un'istanza di LocalDB, usare i metodi LocalDBShareInstance e LocalDBUnShareInstance dell'API LocalDB o le opzioni di condivisione e annullamento della condivisione dell'utilità SqlLocalDb.To share and unshared an instance of LocalDB, use the LocalDBShareInstance and LocalDBUnShareInstance methods of the LocalDB API, or the share and unshared options of the SqlLocalDb utility.

Avvio e connessione a LocalDBStarting LocalDB and Connecting to LocalDB

Connessione all'istanza automaticaConnecting to the Automatic Instance

Il modo più semplice per usare LocalDB consiste nel connettersi all'istanza automatica dell'utente corrente usando la stringa di connessione "Server=(localdb)\MSSQLLocalDB;Integrated Security=true".The easiest way to use LocalDB is to connect to the automatic instance owned by the current user by using the connection string "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".To connect to a specific database by using the file name, connect using a connection string similar to "Server=(LocalDB)\MSSQLLocalDB; Integrated Security=true ;AttachDbFileName=D:\Data\MyDB1.mdf".

Nota

La prima volta che un utente prova a connettersi a LocalDBin un computer, l'istanza automatica deve essere creata e avviata.The first time a user on a computer tries to connect to LocalDB, the automatic instance must be both created and started. Il tempo aggiuntivo necessario per la creazione dell'istanza può determinare un errore di tentativo di connessione generando un messaggio di timeout.The extra time for the instance to be created can cause the connection attempt to fail with a timeout message. In una situazione simile, attendere pochi secondi per consentire il completamento del processo di creazione, quindi riconnettersi.When this happens, wait a few seconds to let the creation process complete, and then connect again.

Creazione e connessione alle istanze denominateCreating and Connecting to a Named Instances

Oltre all'istanza automatica, LocalDB supporta anche istanze denominate.In addition to the automatic instance, LocalDB also supports named instances. Usare il programma SqlLocalDB.exe per creare, avviare e arrestare un'istanza denominata di LocalDB.Use the SqlLocalDB.exe program to create, start, and stop an named instance of LocalDB. Per altre informazioni su SqlLocalDB.exe, vedere Utilità SqlLocalDB.For more information about SqlLocalDB.exe, see SqlLocalDB Utility.

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

Nell'ultima riga sopra indicata vengono restituite informazioni simili alle seguenti.The last line above, returns information similar to the following.

NomeName "LocalDBApp1""LocalDBApp1"
VersioneVersion <Versione corrente><Current Version>
Nome condivisoShared name """"
ProprietarioOwner "<utente di Windows>""<Your Windows User>"
Creazione automaticaAuto create NoNo
StateState esecuzionerunning
Ultima ora inizioLast start time <Data e ora><Date and Time>
Nome pipe dell'istanzaInstance pipe name np:\\.\pipe\LOCALDB#F365A78E\tsql\querynp:\\.\pipe\LOCALDB#F365A78E\tsql\query

Nota

Se nell'applicazione viene usato una versione di .NET precedente alla versione 4.0.2 è necessario connettersi direttamente alla named pipe di LocalDB.If your application uses a version of .NET before 4.0.2 you must connect directly to the named pipe of the LocalDB. Il valore Nome pipe dell'istanza è la named pipe su cui l'istanza di LocalDB è in ascolto.The Instance pipe name value is the named pipe that the instance of LocalDB is listening on. La parte del nome pipe dell'istanza successiva a LOCALDB# verrà modificata a ogni avvio dell'istanza di LocalDB.The portion of the Instance pipe name after LOCALDB# will change each time the instance of LocalDB is started. Per connettersi all'istanza di LocalDB tramite SQL Server Management StudioSQL Server Management Studio, immettere il nome pipe dell'istanza nella casella Nome server della finestra di dialogo Connetti al Motore di databaseDatabase Engine.To connect to the instance of LocalDB by using SQL Server Management StudioSQL Server Management Studio, type the Instance pipe name in the Server name box of the Connect to Motore di databaseDatabase Engine dialog box. Dal programma personalizzato è possibile stabilire una connessione all'istanza di LocalDB usando una stringa di connessione simile a SqlConnection conn = new SqlConnection(@"Server=np:\\.\pipe\LOCALDB#F365A78E\tsql\query");From your custom program you can establish connection to the instance of LocalDB using a connection string similar to SqlConnection conn = new SqlConnection(@"Server=np:\\.\pipe\LOCALDB#F365A78E\tsql\query");

Connessione a un'istanza condivisa di LocalDBConnecting to a Shared Instance of 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.To connect to a shared instance of LocalDB add .\ (dot + backslash) to the connection string to reference the namespace reserved for shared instances. Ad esempio, per connettersi a un'istanza condivisa di LocalDB denominata AppData usare (localdb)\.\AppData come stringa di connessione.For example, to connect to a shared instance of LocalDB named AppData use a connection string such as (localdb)\.\AppData as part of the connection string. Un utente che si connette a un'istanza condivisa di LocalDB di cui non è proprietario, deve disporre di un account di accesso con autenticazione di Windows o autenticazione di SQL ServerSQL Server .A user connecting to a shared instance of LocalDB that they do not own must have a Windows Authentication or SQL ServerSQL Server Authentication login.

Risoluzione dei problemiTroubleshooting

Per informazioni sulla risoluzione dei problemi di LocalDB, vedere la pagina relativa alla risoluzione dei problemi di SQL Server 2012 Express LocalDB.For information about troubleshooting LocalDB, see Troubleshooting SQL Server 2012 Express LocalDB.

AutorizzazioniPermissions

Un'istanza di SQL Server 2016 ExpressSQL Server 2016 ExpressLocalDB è un'istanza creata da un utente per l'uso personale.An instance of SQL Server 2016 ExpressSQL Server 2016 ExpressLocalDB is an instance created by a user for their use. Qualsiasi utente del computer è in grado di creare un database mediante un'istanza di LocalDB, archiviando i file nel relativo percorso utente ed eseguendo il processo con le relative credenziali.Any user on the computer can create a database using an instance of LocalDB, storing files under their user profile and running the process under their credentials. Per impostazione predefinita, l'accesso all'istanza di LocalDB è limitato al relativo proprietario.By default, access to the instance of LocalDB is limited to its owner. I dati contenuti in LocalDB sono protetti dall'accesso ai file di database tramite il file system.The data contained in the LocalDB is protected by file system access to the database files. Se i file di database dell'utente vengono 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 LocalDB di cui è proprietario.If user database files are stored in a shared location, the database can be opened by anyone with file system access to that location by using an instance of LocalDB that they own. 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.If the database files are in a protected location, such as the users data folder, only that user, and any administrators with access to that folder, can open the database. I file di LocalDB possono essere aperti solo da un'istanza di LocalDB alla volta.The LocalDB files can only be opened by one instance of LocalDB at a time.

Nota

LocalDB viene eseguito sempre nel contesto di sicurezza dell'utente. Questo significa che LocalDB non viene mai eseguito con credenziali del gruppo di amministratori locali.LocalDB always runs under the users security context; that is, LocalDB never runs with credentials from the local Administrator’s group. Pertanto, tutti i file di database usati da un'istanza di LocalDB devono essere accessibili mediante l'account di Windows dell'utente proprietario, senza considerare l'appartenenza al gruppo di amministratori locali.This means that all database files used by a LocalDB instance must be accessible using the owning user’s Windows account, without considering membership in the local Administrators group.

Vedere ancheSee Also

Utilità SqlLocalDBSqlLocalDB Utility