SQL Server 2016 Express LocalDBSQL Server 2016 Express LocalDB

En este tema se aplica a: SíSQL Servernobase de datos de SQL Azurenoalmacenamiento de datos de SQL Azure ningún Almacenamiento de datos paralelosTHIS TOPIC APPLIES TO: yesSQL ServernoAzure SQL DatabasenoAzure SQL Data Warehouse noParallel Data Warehouse

Para obtener contenido relacionado con versiones anteriores de SQL Server, vea 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 es una característica de SQL Server Express dirigida a los desarrolladores.Microsoft SQL Server 2016 Express LocalDB is a feature of SQL Server Express targeted to developers. Está disponible en SQL Server 2016 Express con Advanced Services.It is available on SQL Server 2016 Express with Advanced Services.

La instalación deLocalDB copia un conjunto de archivos mínimo necesario para iniciar el Motor de base de datos de SQL ServerSQL Server Database Engine.LocalDB installation copies a minimal set of files necessary to start the Motor de base de datos de SQL ServerSQL Server Database Engine. Una vez que LocalDB está instalado, puede iniciar una conexión mediante una cadena de conexión especial.Once LocalDB is installed, you can initiate a connection using a special connection string. Cuando se realiza la conexión, se crea y se inicia automáticamente la infraestructura de SQL ServerSQL Server necesaria, permitiendo que la aplicación use la base de datos sin tareas de configuración complejas.When connecting, the necessary SQL ServerSQL Server infrastructure is automatically created and started, enabling the application to use the database without complex configuration tasks. Las herramientas de desarrollo pueden proporcionar a los desarrolladores de software un Motor de base de datos de SQL ServerSQL Server Database Engine que les permite escribir y probar el código de Transact-SQLTransact-SQL sin tener que administrar una instancia de servidor completa de SQL ServerSQL Server.Developer Tools can provide developers with a Motor de base de datos de 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.

Pruébelo.Try it out!

  • Para descargar e instalar SQL Server 2016 Express, vaya a las descargas de SQL Server.To download and install SQL Server 2016 Express, go to SQL Server downloads. LocalDB es una característica que se selecciona durante la instalación y está disponible al descargar los medios.LocalDB is a feature you select during installation, and is available when you download the media. Si descarga los medios, elija Express Advanced o el paquete de LocalDB .If you download the media, either choose Express Advanced or the LocalDB package.

  • ¿Tiene una cuenta de Azure?Have an Azure account? Si es así, haga clic aquí para poner en marcha una máquina virtual con SQL Server 2016 (13.x)SQL Server 2016 (13.x) ya instalado.Then go here to spin up a Virtual Machine with SQL Server 2016 (13.x)SQL Server 2016 (13.x) already installed.

Instalar LocalDBInstall LocalDB

Instale LocalDB mediante el asistente para la instalación o mediante el programa SqlLocalDB.msi.Install LocalDB through the installation wizard or by using the SqlLocalDB.msi program. LocalDB es una opción cuando se instala SQL Server 2016 ExpressSQL Server 2016 Express.LocalDB is an option when installing SQL Server 2016 ExpressSQL Server 2016 Express.

Seleccione LocalDB en la página Selección de características/Características compartidas durante la instalación.Select LocalDB on the Feature Selection/Shared Features page during installation. Solo puede haber una instalación de los archivos binarios de LocalDB para cada versión principal de Motor de base de datos de SQL ServerSQL Server Database Engine .There can be only one installation of the LocalDB binary files for each major Motor de base de datos de SQL ServerSQL Server Database Engine version. Se pueden iniciar varios procesos de Motor de base de datosDatabase Engine y todos usarán los mismos binarios.Multiple Motor de base de datosDatabase Engine processes can be started and will all use the same binaries. Una instancia de Motor de base de datos de SQL ServerSQL Server Database Engine iniciada como LocalDB tiene las mismas limitaciones que SQL Server ExpressSQL Server Express.An instance of the Motor de base de datos de SQL ServerSQL Server Database Engine started as the LocalDB has the same limitations as SQL Server ExpressSQL Server Express.

Una instancia de SQL Server ExpressSQL Server Express LocalDB se administra con la utilidad 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 en lugar de la característica de instancia de usuario de SQL Server ExpressSQL Server Express , que ha quedado obsoleta. LocalDB should be used in place of the SQL Server ExpressSQL Server Express user instance feature which is deprecated.

DescriptionDescription

El programa de instalación de LocalDB usa el programa SqlLocalDB.msi para instalar los archivos necesarios en el equipo.The LocalDB setup program uses the SqlLocalDB.msi program to install the necessary files on the computer. Una vez instalado, LocalDB es una instancia de SQL Server ExpressSQL Server Express que puede crear y abrir las bases de datos de SQL ServerSQL Server .Once installed, LocalDB is an instance of SQL Server ExpressSQL Server Express that can create and open SQL ServerSQL Server databases. Los archivos de base de datos del sistema para la base de datos se almacenan normalmente en la ruta de acceso de AppData local de los usuarios, que suele estar oculta.The system database files for the database are stored in the users' local AppData path which is normally hidden. Por ejemplo, C:\Users\<usuario>\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\. Los archivos de base de datos de usuario se almacenan donde indique el usuario, normalmente en alguna ubicación de la carpeta C:\Usuarios\<usuario>\Documentos\.User database files are stored where the user designates, typically somewhere in the C:\Users\<user>\Documents\ folder.

Para obtener más información sobre cómo incluir LocalDB en una aplicación, vea la documentación de Visual StudioVisual Studio Información general de datos locales, Walkthrough: Creating a SQL Server LocalDB Database (Tutorial: creación de una base de datos LocalDB de SQL Server) y Walkthrough: Connecting to Data in a SQL Server LocalDB Database (Windows Forms) (Tutorial: conexión a datos en una base de datos LocalDB de SQL Server (Windows Forms)).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).

Para obtener más información acerca de la API LocalDB , vea Referencia de la API de instancia de SQL Server Express LocalDB y Función LocalDBStartInstance.For more information about the LocalDB API, see SQL Server Express LocalDB Instance API Reference and LocalDBStartInstance Function.

La utilidad SqlLocalDb puede crear nuevas instancias de LocalDBe iniciar y detener una instancia de LocalDB; incluye opciones para ayudarle a administrar 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. Para obtener más información sobre la utilidad SqlLocalDb, vea SqlLocalDB (utilidad).For more information about the SqlLocalDb utility, see SqlLocalDB Utility.

La intercalación de la instancia de LocalDB está establecida en SQL_Latin1_General_CP1_CI_AS y no se puede cambiar.The instance collation for LocalDB is set to SQL_Latin1_General_CP1_CI_AS and cannot be changed. Normalmente se admiten las intercalaciones de nivel de base de datos, nivel de columna y nivel de expresión.Database-level, column-level, and expression-level collations are supported normally. Las bases de datos independientes siguen las reglas de las intercalaciones de metadatos y tempdb definidas por Contained Database Collations.Contained databases follow the metadata and tempdb collations rules defined by Contained Database Collations.

RestrictionsRestrictions

LocalDB no puede ser un suscriptor de replicación de mezcla.LocalDB cannot be a merge replication subscriber.

LocalDB no admite FILESTREAM.LocalDB does not support FILESTREAM.

LocalDB solo permite colas locales de Service Broker.LocalDB only allows local queues for Service Broker.

Una instancia de LocalDB propiedad de cuentas integradas, como NT AUTHORITY\SYSTEM, puede presentar problemas de administrabilidad debido a la redirección del sistema de archivos de Windows. En su lugar, puede usar una cuenta de Windows normal como propietario.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.

Instancias automáticas y con nombreAutomatic and Named Instances

LocalDB admite dos tipos de instancias: instancias automáticas e instancias con nombre.LocalDB supports two kinds of instances: Automatic instances and named instances.

  • Las instancias automáticas de LocalDB son públicas.Automatic instances of LocalDB are public. Se crean y se administran automáticamente para el usuario y se pueden utilizar en cualquier aplicación.They are created and managed automatically for the user and can be used by any application. Hay una instancia automática de LocalDB en cada versión de LocalDB instalada en el equipo del usuario.One automatic instance of LocalDB exists for every version of LocalDB installed on the user’s computer. Las instancias automáticas de LocalDB proporcionan una administración agilizada de la instancia.Automatic instances of LocalDB provide seamless instance management. No hay ninguna necesidad de crear la instancia; solo funciona.There is no need to create the instance; it just works. Esto permite la instalación y migración fáciles de las aplicaciones en un equipo diferente.This allows for easy application installation and migration to a different computer. Si la máquina de destino tiene la versión especificada de LocalDB instalada, la instancia automática de LocalDB de esa versión también estará disponible en la máquina de destino.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. Las instancias automáticas de LocalDB cuentan con un patrón especial para el nombre de instancia que pertenece a un espacio de nombres reservado.Automatic instances of LocalDB have a special pattern for the instance name that belongs to a reserved namespace. Esto evita conflictos de nombres con las instancias con nombre de LocalDB.This prevents name conflicts with named instances of LocalDB. El nombre de la instancia automática es MSSQLLocalDB.The name for the automatic instance is MSSQLLocalDB.

  • Las instancias con nombre de LocalDB son privadas.Named instances of LocalDB are private. Son propiedad de una sola aplicación que es la responsable de la creación y administración de la instancia.They are owned by a single application that is responsible for creating and managing the instance. Las instancias con nombre proporcionan el aislamiento de otras instancias y pueden mejorar el rendimiento reduciendo la contención de recursos con otros usuarios de bases de datos.Named instances provide isolation from other instances and can improve performance by reducing resource contention with other database users. Las instancias con nombre deben ser creadas explícitamente por el usuario a través de la API de administración de LocalDB o implícitamente a través del archivo app.config de una aplicación administrada (aunque la aplicación administrada también puede usar la API, si así lo quiere).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). Cada instancia con nombre de LocalDB tiene una versión de LocalDB asociada que señala al conjunto respectivo de binarios de LocalDB .Each named instance of LocalDB has an associated LocalDB version that points to the respective set of LocalDB binaries. El nombre de instancia de LocalDB es de tipo de datos sysname y puede tener hasta 128 caracteres.The instance name of a LocalDB is sysname data type and can have up to 128 characters. (Esta característica es diferente para las instancias con nombre normales de SQL ServerSQL Server, en que los nombres están limitados a nombres de NetBIOS normales de 16 caracteres ASCII). El nombre de una instancia de LocalDB puede contener cualquier tipo de caracteres Unicode que sean válidos en un nombre de archivo.(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. Una instancia con nombre que utiliza un nombre de instancia automática se convierte en una instancia automática.A named instance that uses an automatic instance name becomes an automatic instance.

    Usuarios diferentes de un equipo pueden tener instancias con el mismo nombre.Different users of a computer can have instances with the same name. Cada instancia es un proceso diferente que se ejecuta como un usuario diferente.Each instance is a different processes running as a different user.

Instancias compartidas de LocalDBShared Instances of LocalDB

Para admitir escenarios donde varios usuarios del equipo deben conectarse a una instancia de LocalDB, LocalDB admite el uso compartido de la instancia.To support scenarios where multiple users of the computer need to connect to a single instance of LocalDB, LocalDB supports instance sharing. Un propietario de una instancia puede decidir permitir que otros usuarios del equipo se conecten a la instancia.An instance owner can choose to allow the other users on the computer to connect to his instance. Las instancias tanto automáticas como con nombre de LocalDB se pueden compartir.Both automatic and named instances of LocalDB can be shared. Para compartir una instancia de LocalDB , un usuario selecciona un nombre compartido (alias) para ella.To share an instance of LocalDB a user selects a shared name (alias) for it. Dado que el nombre compartido está visible para todos los usuarios del equipo, este nombre compartido debe ser único en el equipo.Because the shared name is visible to all users of the computer, this shared name must be unique on the computer. El nombre compartido para una instancia de LocalDB tiene el mismo formato que la instancia con nombre de LocalDB.The shared name for an instance of LocalDB has the same format as the named instance of LocalDB.

Solo un administrador del equipo puede crear una instancia compartida de LocalDB.Only an administrator on the computer can create a shared instance of LocalDB. Una instancia compartida de LocalDB puede dejar de ser compartida por la acción de un administrador o el propietario de la instancia compartida de LocalDB.A shared instance of LocalDB can be unshared by an administrator or by the owner of the shared instance of LocalDB. Para compartir y dejar de compartir una instancia de LocalDB, use los métodos LocalDBShareInstance y LocalDBUnShareInstance de la API de LocalDB o las opciones para compartir y no compartir de la utilidad 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.

Iniciar LocalDB y conectarse a LocalDBStarting LocalDB and Connecting to LocalDB

Conectarse con la instancia automáticaConnecting to the Automatic Instance

La manera más fácil de usar LocalDB es conectarse a la instancia automática propiedad del usuario actual mediante la cadena de conexión "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". Para conectarse a una base de datos concreta con el nombre de archivo, conéctese mediante una cadena de conexión similar 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 primera vez que un usuario de un equipo intenta conectarse a LocalDB, se debe crear e iniciar la instancia automática.The first time a user on a computer tries to connect to LocalDB, the automatic instance must be both created and started. El tiempo adicional para la creación de la instancia puede hacer que el intento de conexión deje de funcionar con un mensaje de fin de tiempo de espera.The extra time for the instance to be created can cause the connection attempt to fail with a timeout message. Cuando sucede esto, espere unos segundos para que el proceso de creación se complete y, a continuación, conéctese de nuevo.When this happens, wait a few seconds to let the creation process complete, and then connect again.

Crear instancias con nombre y conectarse a ellasCreating and Connecting to a Named Instances

Además de la instancia automática, LocalDB también admite instancias con nombre.In addition to the automatic instance, LocalDB also supports named instances. Use el programa SqlLocalDB.exe para crear, iniciar y detener una instancia con nombre de LocalDB.Use the SqlLocalDB.exe program to create, start, and stop an named instance of LocalDB. Para obtener más información sobre SqlLocalDB.exe, vea SqlLocalDB (utilidad).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  

La última línea anterior devuelve información similar a la siguiente.The last line above, returns information similar to the following.

NombreName "LocalDBApp1""LocalDBApp1"
VersiónVersion <Versión actual><Current Version>
Nombre compartidoShared name """"
PropietarioOwner "<Su usuario de Windows>""<Your Windows User>"
Creación automáticaAuto create noNo
StateState ejecuciónrunning
Última hora de inicioLast start time <Fecha y hora><Date and Time>
Nombre de canalización de instanciaInstance pipe name np:\\.\pipe\LOCALDB#F365A78E\tsql\querynp:\\.\pipe\LOCALDB#F365A78E\tsql\query

Nota

Si la aplicación utiliza una versión de .NET anterior a 4.0.2, debe conectarse directamente a la canalización con nombre de LocalDB.If your application uses a version of .NET before 4.0.2 you must connect directly to the named pipe of the LocalDB. El valor Nombre de canalización de instancia es la canalización con nombre en la que escucha la instancia de LocalDB .The Instance pipe name value is the named pipe that the instance of LocalDB is listening on. La parte de Nombre de canalización de instancia que sigue a LOCALDB# cambiará cada vez que se inicie la instancia de LocalDB.The portion of the Instance pipe name after LOCALDB# will change each time the instance of LocalDB is started. Para conectarse a la instancia de LocalDB mediante SQL Server Management StudioSQL Server Management Studio, escriba el nombre de canalización de instancia en el cuadro Nombre de servidor del cuadro de diálogo Conectar al Motor de base de datosDatabase 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 Motor de base de datosDatabase Engine dialog box. Desde su programa personalizado puede establecer la conexión a la instancia de LocalDB mediante una cadena de conexión similar 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");

Conectarse a una instancia compartida de LocalDBConnecting to a Shared Instance of LocalDB

Para conectarse a una instancia compartida de LocalDB , agregue .\ (punto + barra diagonal inversa) a la cadena de conexión para hacer referencia al espacio de nombres reservado para las instancias compartidas.To connect to a shared instance of LocalDB add .\ (dot + backslash) to the connection string to reference the namespace reserved for shared instances. Por ejemplo, para conectarse a una instancia compartida de LocalDB denominada AppData , use una cadena de conexión, como (localdb)\.\AppData , como parte de la cadena de conexión.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 usuario que se conecta a una instancia compartida de LocalDB de la que no es propietario debe tener un inicio de sesión con autenticación de Windows o autenticación de 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.

Solucionar problemasTroubleshooting

Para obtener información sobre cómo solucionar problemas de LocalDB, vea la página que trata la solución de problemas de SQL Server 2012 Express LocalDB.For information about troubleshooting LocalDB, see Troubleshooting SQL Server 2012 Express LocalDB.

PermisosPermissions

Una instancia de SQL Server 2016 ExpressSQL Server 2016 ExpressLocalDB es una instancia creada por el usuario para utilizarla.An instance of SQL Server 2016 ExpressSQL Server 2016 ExpressLocalDB is an instance created by a user for their use. Cualquier usuario del equipo puede crear una base de datos usando una instancia de LocalDB, almacenando archivos en su perfil de usuario y ejecutando el proceso con sus credenciales.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. De forma predeterminada, el acceso a la instancia de LocalDB está limitado a su propietario.By default, access to the instance of LocalDB is limited to its owner. Los datos contenidos en LocalDB están protegidos por el acceso al sistema de archivos en los archivos de base de datos.The data contained in the LocalDB is protected by file system access to the database files. Si los archivos de base de datos de usuario se almacenan en una ubicación compartida, cualquiera que tenga acceso al sistema de archivos en esa ubicación puede abrir la base de datos usando una instancia de LocalDB que sea de su propiedad.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. Si los archivos de base de datos están en una ubicación protegida, como la carpeta de datos de los usuarios, solo el usuario y los administradores con acceso a la carpeta pueden abrir la base de datos.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. Los archivos de LocalDB solo los puede abrir una instancia de LocalDB cada vez.The LocalDB files can only be opened by one instance of LocalDB at a time.

Nota

LocalDB siempre se ejecuta en el contexto de seguridad de los usuarios; es decir, LocalDB nunca se ejecuta con credenciales del grupo local Administradores.LocalDB always runs under the users security context; that is, LocalDB never runs with credentials from the local Administrator’s group. Esto significa que todos los archivos de base de datos usados por una instancia de LocalDB deben ser accesibles mediante la cuenta de Windows del usuario propietario, sin considerar la pertenencia al grupo local Administradores.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.

Ver tambiénSee Also

SqlLocalDB (utilidad)SqlLocalDB Utility