Microsoft SQL Server Express LocalDB está destinado a desarrolladores, es muy fácil de instalar y no requiere ninguna tarea de configuración compleja para crear una instancia o usar la base de datos. La Introducción acerca de la instalación de LocalDB puede ser encontrada en el artículo “Cómo instalar Microsoft SQL Server Express LocalDB”.
Este artículo mostrará diferentes maneras de conectarse a LocalDB y cómo crear y usar una instancia de LocalDB.
LocalDB correr a demanda, lo que significa que los procesos de LocalDB pueden iniciarse y pararse automáticamente cuando sea necesario. En la práctica, esto pasará cuando una computadora es inicada y no hay procesos LocalDB corriendo. Así que, no hay recursos dedicados a servir al servidor de base de datos durante la rutina diaria de uno. Cuando una aplicación que usa Microsoft SQL Server Express LocalDB es ejecutada y una conexión es hecha a la base de datos, el proceso LocalDB es iniciado en la computadora en demanda. Cuando la última conexión desde la aplicación es cerrada, después de una demora corta, el proceso de LocalDB termina.
También, la propiedad del nombre del archivo de la base de datos adjuntada puede ser usada para la cadena de conexión de la base de datos. En esta forma, la localización del archivo de la base de datos puede ser controlada. El archivo de la base de datos no tiene que ser buscado en alguna localización centralizada de SQL Server, pero puede ser encontrado en la carpeta de instalación de la Aplicación del usuario. Esto significa que el trabajo está siendo hecho sólo con un archivo de base de datos, no configurando y usando un servidor de base de datos.
Una vez que Microsoft SQL Server Express LocalDB esté instalado, usar la Utilidad SqlLocalDB puede ser visto como información acerca de las instancias LocalDB instaladas en la máquina. Escribiendo el comando SqlLocalDb info y presionando la tecla Enter en la ventana de Línea de Comandos, las siguientes instancias pueden ser encontradas:
Las instancias v11.0 y MSSQLLocalDB son instancias automáticas de Microsoft SQL Server LocalDB y vienen con la instalación de Microsoft SQL Server Express LocalDB.
Dependiendo de qué versión de Microsoft SQL Server Express LocalDB está instalada en la máquina, la instancia automática diferente de LocalDB aparecerá. Por ejemplo, si sólo Microsoft SQL Server 2012 Express LocalDB está instalado, cuando las instancias LocalDB disponibles en la máquina usando el comando SqlLocalDb info son listadas, la instancia v11.0 LocalDB aparecerá. Pero, si Microsoft SQL Server 2014 Express LocalDB o una versión más reciente está instalado, la instancia MSSQLLocalDB aparecerá como la instancia automática.
Las convenciones de nombre de la instancia automática v11.0 LocalDB pueden ser tomados desde este enlace, y las convenciones de nombre para la instancia automática MSSQLLocalDB LocalDB pueden ser encontradas en este enlace.
Para ver los otros detalles acerca de las instancias, por ejemplo, la instancia v11.0, escriba el siguiente comando:
SQLLocalDB info v11.0
El resultado será el que sigue:
Name representa el nombre de la instancia LocalDB,
Version muestra la versión completa de la instancia LocalDB,
Shared name comparte la instancia usando el nombre compartido especificado, cuando múltiples usuarios necesitan conectarse a una sola instancia de Microsoft SQL Server Express LocalDB.Escriba el siguiente comando: SQLLocalDB share v11.0 Mare en la ventana de Línea de Comandos y ejecute. En la ventana de Línea de Comando se mostrará el siguiente mensaje:
Private LocalDB instance “v11.0” shared with the shared name: “Mare”.
Asegúrese de que la ventana de Línea de Comando está ejecutándose con privilegios de administrador, de otra manera, el siguiente mensaje puede mostrarse:
Sharing of LocalDB instance “v11.0” with shared name “Mare” failed because
Administrator privileges are required in order to execute this operation.
Ahora, cuando el comando SQLLocalDB info v11.0 sea ejecutado, el resultado será este:
Owner muestra el nombre del Usuario de Windows (el dueño de la instancia LocalDB).
Auto-create indica (muestra) si la instancia automática LocalDB es creada o no. Si la instancia LocalDB es automáticamente creada en la sección Auto-create, Yes aparecerá. De lo contrario, No será mostrado.
Creemos una nueva instancia y demostremos esto. En la ventana de Línea de Comandos, escriba el siguiente comando: SqlLocalDB create NewInstance y presione la tecla Enter. El mensaje que aparecerá indica que la instancia LocalDB fue creada:
LocalDB instance “NewInstance” created with version 13.0.2186.6.
Ahora, cuando el comando SqlLocalDB info NewInstancees ejecutado en la sección Auto-create, No será mostrado:
Como puede que haya notado, la versión de NewInstance LocalDB es diferente de la versión de la instancia v11.0 LocaDB. Esto pasa cuando, en una máquina, más de una versión de Microsoft SQL Server Express LocalDB ha sido instalada.
Ahora, cuando una nueva instancia de LocalDB es creada sin especificar una versión de Microsoft SQL Server Express LocalDB basado en un nombre de instancia LocalDB en las cadenas de creación, por defecto la versión más reciente de LocalDB será usada en el proceso de creación de una nueva instancia LocalDB.
Creemos una nueva instancia que tendrá la misma versión que la instancia v11.0 LocalDB. Escriba el siguiente comando: SqlLocalDB create Test 11.0 en la ventana de Línea de Comandos y presione la tecla Enter. El siguiente mensaje aparecerá:
LocalDB instance “Test” created with version 11.0.2318.0.
Ahora, cuando el comando SqlLocalDB info Test sea ejecutado, el resultado será este:
Cuando se está creando una nueva instancia LocalDB con el nombre que tiene dos o más palabras separadas por un espacio, por ejemplo, Test instance, sin ponerlas en comillas dobles, el siguiente mensaje aparecerá:
Creation of LocalDB instance “Test” with version instance failed because of the following error
The parameter for the LocalDB Instance API method is incorrect. Consult the API documentation.
Si ejecutara el comando SQLLocalDB create “Test instance” el siguiente mensaje aparecerá en la ventana de Línea de Comandos:
LocalDB instance “Test instance” created with version 11.0.
State muestra un estado actual de una instancia LocalDB elegida, si está en estado Running (corriendo) o Stopped (parado). Para ejecutar, por ejemplo, la instancia Test LocalDB, en la ventana de Línea de Comandos, el siguiente comando debería ser escrito: SqlLocalDB start Test. El resultado después de iniciar la instancia Test LocalDB es:
Ahora, State cambió a “Running”, y la sección Instance pipe name tiene un valor. Este valor (cadena) es usado como la cadena de conexión a la instancia Test LocalDB desde otra aplicación.
Ahora, cuando una instancia es creada e iniciada, no es posible hacer otras cosas como crear bases de datos y correr consultas, ya que SqlLocalDb no provee una interfaz para el motor, dado que no provee un medio para interactuar con bases de datos. Aún así, hay muchas otras opciones para conectarse e interactuar con instancias SqlLocalDb.
Por ejemplo, si la cadena desde Instance pipe name es pegada en el campo de nombre del Servidor debajo de la ventana Connect to Server de SQL Server Management Studio:
Y el botón Connect es presionado, la conexión a la instancia Test LocalDB será establecida:
Ahora, cuando la conexión sea establecida, el mismo código T-SQL puede ser usado en LocalDB como está en SQL Server Express cuando se creen bases de datos, tablas, procedimientos almacenados, etc.
Hay algunas restricciones relacionadas a comparar LocalDB con SQL Server Express, las cuales puede ser vistas aquí.
Otra manera de conectarse a la instancia LocalDB es escribir (LocalDB)\ seguido del nombre la instancia LocalDB (v11.0) en el cuadro combinado Server de la ventana Connect to Server, y luego hacer clic en el botón Connect:
En la ventana Object Explorer, el resultado será así:
Si en el cuadro combinado Server de la ventana Connect to Server se ingresa (LocalDB)\ seguido de un punto ((LocalDB)\.):
La conexión será establecida con la instancia automática (por defecto) LocalDB:
Este tipo de conexión a la instancia automática LocalDB se refiere a Microsoft SQL Server Express 2014 LocalDB o superior.
Como se mencionó en el texto de arriba, si más de una versión de LocalDB está instalada en la máquina, la conexión será establecida con la instancia LocalDB automática con la versión más alta (la última).
Eliminemos esa instancia automática LocalDB. En esta situación, la instancia MSSQLLocalDB es la que debería ser eliminada. En la ventana de Línea de Comandos, el siguiente comando debería ser escrito: SqlLocalDB delete MSSQLLocalDB. Cuando la tecla Enter es presionada desde el teclado, el siguiente mensaje podría ocurrir:
Delete of LocalDB instance “MSSQLLocalDB” failed because of the following error:
Requested operation on LocalDB instance cannot be performed because specified instance is currently in use. Stop the instance and try again.
Como dice el mensaje, la instancia automática MSSQLLocalDB está en uso. Para ser eliminada, primero debería ser parada. Escriba el comando SqlLocalDB stop MSSQLLocaDB en la ventana de Línea de Comandos:
LocalDB instance “MSSQLLocalDB” stopped.
Ahora, repita el comando SqlLocalDB delete MSSQLLocalDB. Esto removerá exitosamente la instancia LocalDB de la máquina:
LocalDB instance “MSSQLLocalDB” deleted.
Usando sqlcmd, la conexión con la instancia LocalDB puede ser establecida. Desde ahí, el comando T-SQL y varias consultas T-SQL pueden ser usados. En la ventana de Línea de Comandos, navegue a SqlLocalDb.exe: cd C:\Program Files\Microsoft SQL Server\110\Tools\Binn\
También, escriba el siguiente comando: sqlcmd-S (localDB)\v11.0 para conextarse a la instancia v11.0 LocalDB.
Cuando hay una conexión a la instancia v11.0 LocalDB, se pueden crear una base de datos, una tabla, etc. Pegue la siguiente consulta en la ventana de Línea de Comandos:
1 2 3 4 5 6 7 8 9 |
CREATE DATABASE TestSQlCMD; GO USE TestSQlCMD; GO CREATE TABLE dbo.Pesron( ID INT, Name VARCHAR(50) ); GO |
Ahora, conectémonos a la instancia v11.0 LocalDB vía SSMS:
Como puede verse en la ventana Object Explorer, la base de datos TestSQlCMD con la tabla Pesron fue creada en la instancia v11.0 LocalDB.
Conectándose a una Instancia compartida de LocalDB
Para conectarse a una instancia compartida de LocalDB, añada .\ entre (LocalDB)\ y el nombre de una instancia compartida. Por ejemplo, (LocalDB)\.\Mare:
Si .\ es omitido, el siguiente mensaje aparecerá:
Artículo previo en esta serie:
Vea más
Considere estas herramientas gratis para SQL Server que mejoran la productividad del desarrollador de bases de datos.
Referencias
- SQL Server 2012 Express LocalDB
- SQL Server 2014 Express LocalDB
- LocalDB: ¿Dónde está Mi Base de Datos?
- Referencia de la API de una Instancia de SQL Server Express LocalDB