Compartir a través de


Tutorial: empezar desde una base de datos existente

Se aplica a: SQL Server Azure SQL Database Azure SQL Managed Instance Base de datos de Azure SQL de Microsoft Fabric

Los proyectos SQL contienen archivos declarativos (instrucción CREATE) para todos los objetos de una base de datos, como tablas, vistas y procedimientos almacenados. Estos archivos se pueden usar para crear nuevas bases de datos, actualizar bases de datos existentes o incluso para realizar un seguimiento de la base de datos en control de código fuente. A menudo, estamos empezando con un proyecto SQL con una base de datos existente y queremos crear objetos en el proyecto SQL que coincidan con los de la base de datos utilizando el mínimo esfuerzo.

Algunas herramientas de proyectos SQL incluyen un único paso para crear un proyecto SQL a partir de una base de datos existente. Otras herramientas requieren realizar unos cuantos pasos para crear un nuevo proyecto SQL y, a continuación, importar objetos desde una base de datos existente. Excepto para las instrucciones de Visual Studio (SQL Server Data Tools), la guía se centra en proyectos SQL de estilo SDK.

Con la opción 1 de este tutorial, podrá:

Paso 1: crear un nuevo proyecto SQL a partir de una base de datos existente Paso 2: compilar el proyecto SQL

Con la opción 2 de este tutorial, podrá:

  • Paso 1: crear un nuevo proyecto SQL vacío
  • Paso 2: importar objetos desde una base de datos existente
  • Paso 3: compilar el proyecto SQL

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 el tutorial, necesita tener 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.

Opción 1: crear un nuevo proyecto SQL a partir de una base de datos existente

Paso 1: crear un proyecto SQL a partir de una base de datos existente

En el Explorador de objetos de SQL Server en Visual Studio, haga clic con el botón derecho sobre la base de datos desde la que desea crear un proyecto y seleccione Crear nuevo proyecto....

Captura de pantalla del cuadro de diálogo de importación de bases de datos en Visual Studio.

En el cuadro de diálogo Crear nuevo proyecto, 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. La configuración de importación predeterminada importa los objetos en carpetas por esquema y, a continuación, por tipo de objeto. Puede modificar la configuración de importación para cambiar la estructura de carpetas o para incluir permisos en los objetos que se importan. Iniciar la importación.

Con la importación en curso, el progreso se muestra como mensajes en cuadro de diálogo Importar base de datos. Cuando se completa la importación, los objetos importados están visibles en el Explorador de soluciones y los registros se almacenan en un archivo del directorio del proyecto en Import Schema Logs. Seleccione Finalizar.

La opción 1 no está disponible para la línea de comandos. Utilice la opción 2 en su lugar.

En la vista del explorador de objetos de base de datos en VS Code o Azure Data Studio, seleccione la base de datos desde la que desea crear un proyecto. Haga clic con el botón derecho sobre la base de datos y seleccione Crear proyecto a partir de la base de datos.

Captura de pantalla del cuadro de diálogo Crear proyecto a partir de base de datos en Azure Data Studio.

En Azure Data Studio, el cuadro de diálogo Crear proyecto a partir de la base de datos requiere que se seleccione el nombre y la ubicación del proyecto. La configuración de importación predeterminada importa los objetos en carpetas por esquema y, a continuación, por tipo de objeto. Puede seleccionar una estructura de carpetas diferente o incluir permisos en los objetos que se importan antes de seleccionar Crear.

En VS Code, los símbolos del sistema solicitan introducir un nombre de proyecto y una ubicación. La configuración de importación predeterminada importa los objetos en carpetas por esquema y, a continuación, por tipo de objeto. Puede seleccionar una estructura de carpetas diferente o incluir permisos en los objetos que se importan antes de que empiece la importación.

Abra la vista Proyectos de base de datos para ver el nuevo proyecto y las definiciones de objeto importadas.

La opción 1 no está disponible para la línea de comandos. Utilice la opción 2 en su lugar.

Paso 2: 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).

La opción 1 no está disponible para la línea de comandos. Utilice la opción 2 en su lugar.

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).

La opción 1 no está disponible para la línea de comandos. Utilice la opción 2 en su lugar.

Opción 2: crear un nuevo proyecto SQL vació e importar objetos a partir de una base de datos existente

Como alternativa, los pasos de creación del proyecto e importación de objetos se pueden realizar de manera independiente.

Paso 1: crear un nuevo proyecto SQL vacío

Iniciamos nuestro proyecto creando un nuevo proyecto de base de datos SQL antes de importar los objetos.

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: importar objetos desde una base de datos existente

En el Explorador de soluciones, haga clic con el botón derecho sobre el nodo del proyecto y seleccione Importar -> Base de datos.... Si esta opción está inhabilitada, es posible que ya se hayan creado objetos en el proyecto de base de datos. Puede eliminar los objetos o crear un nuevo proyecto.

En el cuadro de diálogo Importar base de datos, seleccione la conexión con la base de datos desde la que desea importar objetos. Si se ha conectado a la base de datos en el Explorador de objetos de SQL Server, está presente en la lista Historial.

Captura de pantalla del cuadro de diálogo de importación de bases de datos en Visual Studio.

La configuración de importación predeterminada importa los objetos en carpetas por esquema y, a continuación, por tipo de objeto. Puede modificar la configuración de importación para cambiar la estructura de carpetas o para incluir permisos en los objetos que se importan. Iniciar la importación.

Con la importación en curso, el progreso se muestra como mensajes en cuadro de diálogo Importar base de datos. Cuando se completa la importación, los objetos importados están visibles en el Explorador de soluciones y los registros se almacenan en un archivo del directorio del proyecto en Import Schema Logs. Seleccione Finalizar para volver al proyecto.

Usaremos la CLI de SqlPackage para importar objetos de una base de datos existente al nuevo proyecto de base de datos SQL que creamos en Visual Studio en el paso 1. El siguiente comando SqlPackage importa el esquema de una base de datos a una carpeta MyDatabaseProject organizada por carpetas anidadas de tipo de objeto y de esquema.

sqlpackage /a:Extract /ssn:localhost /sdn:MyDatabase /tf:MyDatabaseProject /p:ExtractTarget=SchemaObjectType

Cuando estas carpetas se colocan en una carpeta de proyecto de base de datos SQL de estilo SDK, se incluyen automáticamente en el proyecto sin necesidad de importarlas ni modificar el archivo de proyecto SQL.

Nota:

La extensión Proyectos de base de datos SQL en VS Code no admite la importación de objetos de una base de datos a un proyecto. Use la extensión Proyectos de base de datos SQL en Azure Data Studio para importar objetos desde una base de datos o siga la opción 1 para crear un nuevo proyecto a partir de una base de datos existente en VS Code.

En la extensión Proyectos de base de datos SQL de Azure Data Studio, abra la vista Proyectos de base de datos. Haga clic con el botón derecho sobre el nodo del proyecto y seleccione Actualizar proyecto desde una base de datos.

Captura de pantalla del cuadro de diálogo Actualizar base de datos en Azure Data Studio.

En el cuadro de diálogo Actualizar base de datos, seleccione la conexión con la base de datos desde la que desea importar objetos. Si se ha conectado a la base de datos en la vista Conexiones, está presente en la lista Historial.

Seleccione Ver cambios en la comparación de esquemas para revisar y elija un subconjunto de objetos para importar o Aplicar todos los cambios para importar todos los objetos.

La CLI de SqlPackage se puede usar para extraer el esquema de una base de datos existente en un archivo .dacpac o en archivos .sql individuales. El siguiente comando SqlPackage extrae el esquema de una base de datos en archivos .sql organizados por carpetas anidadas de tipo de objeto y de esquema.

sqlpackage /a:Extract /ssn:localhost /sdn:MyDatabase /tf:MyDatabaseProject /p:ExtractTarget=SchemaObjectType

Cuando estas carpetas se colocan en una carpeta de proyecto de base de datos SQL de estilo SDK, se incluyen automáticamente en el proyecto sin necesidad de importarlas ni modificar el archivo de proyecto SQL.

Paso 3: compilar el proyecto SQL

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).