Introducción a los proyectos de base de datos SQL

Se aplica a: SQL Server 2022 (16.x) Azure SQL Database Azure SQL Managed Instance

Un proyecto de base de datos SQL es una representación local de objetos SQL que contiene el esquema de una base de datos única, como tablas, procedimientos almacenados o funciones. El ciclo de desarrollo de un proyecto de base de datos SQL permite integrar el desarrollo de bases de datos en flujos de trabajo de integración continua e implementación continua (CI/CD) conocidos como procedimiento recomendado de desarrollo.

En este artículo se describen la creación de un nuevo proyecto SQL, la adición de objetos al proyecto y la compilación e implementación del proyecto. Excepto para las instrucciones de Visual Studio (SQL Server Data Tools), la guía se centra en proyectos SQL de estilo SDK.

  1. Crear un nuevo proyecto
  2. Adición de objetos al proyecto
  3. Compilación del proyecto
  4. Implementación del proyecto

Requisitos previos

# install SqlPackage CLI
dotnet tool install -g Microsoft.SqlPackage

# install Microsoft.Build.Sql.Templates
dotnet new install Microsoft.Build.Sql.Templates

Nota:

Para completar la implementación de un proyecto de base de datos SQL, necesita acceso a una instancia de Azure SQL o SQL Server. Puede desarrollar localmente y de forma gratuita con SQL Server Developer Edition en Windows o en contenedores.

Paso 1: Creación de un proyecto

Iniciamos nuestro proyecto mediante la creación de un nuevo proyecto de base de datos SQL antes de agregarle objetos manualmente. Hay otras maneras de crear un proyecto que permita rellenar inmediatamente el proyecto con objetos de una base de datos existente, como el uso de las herramientas de comparación de esquemas.

Selecciona Archivo, Nuevo y, a continuación, Proyecto.

En el cuadro de diálogo Nuevo proyecto, use el término SQL Server en el cuadro de búsqueda. El resultado principal debería ser Proyecto de base de datos de SQL Server.

Captura de pantalla del cuadro de diálogo Nuevo proyecto.

Seleccione Siguiente para continuar con el paso siguiente. Proporcione un nombre de proyecto, que no tiene por qué coincidir con el nombre de una base de datos. Compruebe y modifique la ubicación del proyecto según sea necesario.

Seleccione Crear para crear el proyecto. El proyecto vacío se puede abrir y visualizar en el Explorador de soluciones para su edición.

Selecciona Archivo, Nuevo y, a continuación, Proyecto.

En el cuadro de diálogo Nuevo proyecto, use el término SQL Server en el cuadro de búsqueda. El resultado principal debería ser Proyecto de base de datos de SQL Server, estilo SDK (versión preliminar).

Captura de pantalla del cuadro de diálogo Nuevo proyecto.

Seleccione Siguiente para continuar con el paso siguiente. Proporcione un nombre de proyecto, que no tiene por qué coincidir con el nombre de una base de datos. Compruebe y modifique la ubicación del proyecto según sea necesario.

Seleccione Crear para crear el proyecto. El proyecto vacío se puede abrir y visualizar en el Explorador de soluciones para su edición.

En la vista Proyectos de base de datos de VS Code o Azure Data Studio, seleccione el botón Nuevo proyecto.

Captura de pantalla del nuevo viewlet.

La primera consulta determina qué plantilla de proyecto se va a usar, principalmente en función de si la plataforma de destino es SQL Server o Azure SQL. Si se le pide que seleccione una versión específica de SQL, elija la versión que coincida con la de la base de datos de destino, pero si la versión de la base de datos de destino es desconocida, elija la versión más reciente, ya que el valor se puede modificar más adelante.

Escriba un nombre de proyecto en la entrada de texto que aparece, que no tiene por qué coincidir con un nombre de base de datos.

En el cuadro de diálogo “Seleccionar una carpeta” que aparece, seleccione un directorio para guardar la carpeta del proyecto, el archivo .sqlproj y el resto del contenido.

Cuando se le pregunte si desea crear un proyecto de estilo SDK (versión preliminar), seleccione .

Una vez completado, el proyecto vacío se puede abrir y visualizar en la vista Proyectos de base de datos para su edición.

Con las plantillas de .NET para proyectos Microsoft.Build.Sql instalados, puede crear un nuevo proyecto de base de datos SQL desde la línea de comandos. La opción -n especifica el nombre del proyecto y la opción -tp especifica la plataforma de destino del proyecto.

Use la opción -h para ver todas las opciones disponibles.

# install Microsoft.Build.Sql.Templates
dotnet new sqlproject -n MyDatabaseProject

Paso 2: Adición de objetos al proyecto

En el Explorador de soluciones, haga clic con el botón derecho en el nodo del proyecto y seleccione Agregar y luego Tabla. Aparece el cuadro de diálogo Agregar nuevo elemento, donde puede especificar el nombre de la tabla. Seleccione Agregar para crear la tabla en el proyecto SQL.

La tabla se abre en el diseñador de tablas de Visual Studio con la plantilla de definición de tabla, donde puede agregar columnas, índices y otras propiedades de tabla. Guarde el archivo cuando haya terminado de realizar las modificaciones iniciales.

Se pueden agregar más objetos de base de datos mediante el cuadro de diálogo Agregar nuevo elemento, como vistas, procedimientos almacenados y funciones. Para acceder al cuadro de diálogo, haga clic con el botón derecho en el nodo del proyecto en Explorador de soluciones y seleccione Agregar y, a continuación, el tipo de objeto deseado. Los archivos del proyecto se pueden organizar en carpetas a través de la opción Nueva carpeta en Agregar.

En el Explorador de soluciones, haga clic con el botón derecho en el nodo del proyecto y seleccione Agregar y, a continuación, Nuevo elemento. En el cuadro de diálogo Agregar nuevo elemento, seleccione Mostrar todas las plantillas y, a continuación, Tabla. Especifique el nombre de la tabla como nombre de archivo y seleccione Agregar para crear la tabla en el proyecto de SQL.

La tabla se abre en el editor de consultas de Visual Studio con la plantilla de definición de tabla, donde puede agregar columnas, índices y otras propiedades de tabla. Guarde el archivo cuando haya terminado de realizar las modificaciones iniciales.

Se pueden agregar más objetos de base de datos mediante el cuadro de diálogo Agregar nuevo elemento, como vistas, procedimientos almacenados y funciones. Para acceder al cuadro de diálogo, haga clic con el botón derecho en el nodo del proyecto en el Explorador de soluciones y seleccione Agregar y, a continuación, el tipo de objeto deseado después de Mostrar todas las plantillas. Los archivos del proyecto se pueden organizar en carpetas a través de la opción Nueva carpeta en Agregar.

En la vista Proyectos de base de datos de VS Code o Azure Data Studio, haga clic con el botón derecho en el nodo del proyecto y seleccione Agregar tabla. En el cuadro de diálogo que aparece, especifique el nombre de la tabla.

La tabla se abre en el editor de texto con la plantilla de definición de tabla, donde puede agregar columnas, índices y otras propiedades de tabla. Guarde el archivo cuando haya terminado de realizar las modificaciones iniciales.

Se pueden agregar más objetos de base de datos a través del menú contextual del nodo del proyecto, como vistas, procedimientos almacenados y funciones. Para acceder al cuadro de diálogo, haga clic con el botón derecho sobre el nodo del proyecto en la vista Proyectos de base de datos de VS Code o Azure Data Studio y, a continuación, sobre el tipo de objeto deseado. Los archivos del proyecto se pueden organizar en carpetas a través de la opción Nueva carpeta en Agregar.

Los archivos se pueden agregar al proyecto creándolos en el directorio del proyecto o en carpetas anidadas. Se recomienda la extensión de archivo .sql y la organización por tipo de objeto o esquema y tipo de objeto.

La plantilla base de una tabla se puede usar como punto de partida para crear un nuevo objeto de tabla en el proyecto:

CREATE TABLE [dbo].[Table1]
(
  [Id] INT NOT NULL PRIMARY KEY
)

Paso 3: Compilar el proyecto

El proceso de compilación valida las relaciones entre objetos y la sintaxis teniendo en cuenta la plataforma de destino especificada en el archivo de proyecto. La salida de artefacto del proceso de compilación es un archivo .dacpac, que se puede usar para implementar el proyecto en una base de datos de destino y que contiene el modelo compilado del esquema de base de datos.

En el Explorador de soluciones, haga clic con el botón derecho sobre el nodo del proyecto y seleccione Compilar.

La ventana de salida se abre automáticamente para mostrar el proceso de compilación. Si hay errores o advertencias, se muestran en la ventana de salida. En una compilación correcta, el artefacto de compilación (archivo .dacpac) se crea y su ubicación se incluye en la salida de la compilación (el valor predeterminado es bin\Debug\projectname.dacpac).

En el Explorador de soluciones, haga clic con el botón derecho sobre el nodo del proyecto y seleccione Compilar.

La ventana de salida se abre automáticamente para mostrar el proceso de compilación. Si hay errores o advertencias, se muestran en la ventana de salida. En una compilación correcta, el artefacto de compilación (archivo .dacpac) se crea y su ubicación se incluye en la salida de la compilación (el valor predeterminado es bin\Debug\projectname.dacpac).

En la vista Proyectos de base de datos de VS Code o Azure Data Studio, haga clic con el botón derecho en el nodo del proyecto y seleccione Compilar.

La ventana de salida se abre automáticamente para mostrar el proceso de compilación. Si hay errores o advertencias, se muestran en la ventana de salida. En una compilación correcta, el artefacto de compilación (archivo .dacpac) se crea y su ubicación se incluye en la salida de la compilación (el valor predeterminado es bin/Debug/projectname.dacpac).

Los proyectos de base de datos SQL se pueden compilar desde la línea de comandos mediante el comando dotnet build.

dotnet build

# optionally specify the project file
dotnet build MyDatabaseProject.sqlproj

La salida de la compilación incluye los errores o advertencias y los archivos y números de línea específicos en los que se producen. En una compilación correcta, el artefacto de compilación (archivo .dacpac) se crea y su ubicación se incluye en la salida de la compilación (el valor predeterminado es bin/Debug/projectname.dacpac).

Paso 4: Implementar el proyecto

El modelo compilado de un esquema de base de datos en un archivo .dacpac se puede implementar en una base de datos de destino mediante la herramienta de línea de comandos SqlPackage o mediante otras herramientas de implementación. El proceso de implementación determina los pasos necesarios para actualizar la base de datos de destino para que coincida con el esquema definido en .dacpac, creando o modificando objetos según sea necesario en función de los objetos que ya existen en la base de datos. Como resultado, el proceso de implementación es idempotente, lo que significa que se puede ejecutar varias veces sin causar problemas y puede implementar el mismo .dacpac en varias bases de datos sin necesidad de predeterminar su estado.

En el Explorador de soluciones, haga clic con el botón derecho sobre el nodo del proyecto y seleccione Publicar…

Se abre el cuadro de diálogo de publicación, donde se establece la conexión con la base de datos de destino. Si no tiene una instancia de SQL existente para la implementación, LocalDB ((localdb)\MSSQLLocalDB) se instala con Visual Studio y se puede usar para pruebas y desarrollo.

Especifique un nombre de base de datos y seleccione Publicar para implementar el proyecto en la base de datos de destino o Generar script para generar un script que se revisará antes de ejecutarse.

En el Explorador de soluciones, haga clic con el botón derecho sobre el nodo del proyecto y seleccione Publicar…

Se abre el cuadro de diálogo de publicación, donde se establece la conexión con la base de datos de destino. Si no tiene una instancia de SQL existente para la implementación, LocalDB ((localdb)\MSSQLLocalDB) se instala con Visual Studio y se puede usar para pruebas y desarrollo.

Especifique un nombre de base de datos y seleccione Publicar para implementar el proyecto en la base de datos de destino o Generar script para generar un script que se revisará antes de ejecutarse.

En la vista Proyectos de base de datos de VS Code o Azure Data Studio, haga clic con el botón derecho en el nodo del proyecto y seleccione Publicar.

Sugerencia

Si no tiene una instancia de SQL disponible para la implementación, la extensión Proyectos de base de datos SQL puede crear una instancia local de SQL Server para usted en un nuevo contenedor. Con un runtime del contenedor como Docker Desktop en ejecución, seleccione Publicar en un nuevo contenedor de desarrollo local de SQL Server en la lista desplegable.

Si tiene una instancia de SQL existente para la implementación, seleccione Publicar en un servidor SQL existente y, a continuación, No usar perfil si se le solicita un perfil de publicación.

Si no ha configurado una conexión con una base de datos de destino, se le pedirá que cree una nueva conexión. Las nuevas entradas de conexión solicitan el nombre del servidor, el método de autenticación y el nombre de la base de datos.

Una vez configurada la conexión, se iniciará el proceso de implementación. Puede elegir ejecutar automáticamente la implementación (publicar) o generar un script para revisarlo antes de ejecutar (generar script).

La CLI de SqlPackage se usa para implementar un archivo .dacpac en una base de datos de destino mediante la acción de publicación.

Por ejemplo, para implementar un archivo .dacpac en una base de datos de destino basada en un cadena de conexión:

sqlpackage /Action:Publish /SourceFile:bin/Debug/projectname.dacpac /TargetConnectionString:{yourconnectionstring}

Obtener ayuda