Compartir a través de


Tutorial: Inicio desde una base de datos existente

Se aplica a:SQL ServerAzure SQL DatabaseInstancia administrada de Azure SQLBase de datos SQL en 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 el control de código fuente. A menudo, estamos empezando con un proyecto de SQL cuando tenemos una base de datos existente y queremos crear objetos en el proyecto SQL que coincidan con la base de datos con un esfuerzo mínimo.

Algunas herramientas de proyectos de SQL incluyen un único paso para crear un proyecto de SQL a partir de una base de datos existente. Otras herramientas requieren algunos pasos para crear un nuevo proyecto de SQL y, a continuación, importar objetos de una base de datos existente. Excepto en 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 de SQL a partir de una base de datos existente Paso 2: compilar el proyecto de SQL

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

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

Prerequisites

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

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

Note

Para completar el tutorial, necesita acceso a una instancia de Azure SQL o SQL Server. Puede desarrollar localmente de forma gratuita con SQL Server Developer Edition en Windows o en contenedores.

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

Paso 1: Crear un nuevo proyecto de 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 en la base de datos desde la que desea crear un proyecto y seleccione Crear nuevo proyecto....

Recorte de pantalla del cuadro de diálogo Importar base de datos en Visual Studio.

En el cuadro de diálogo Crear nuevo proyecto, proporcione un nombre de proyecto, que no necesita coincidir con un nombre de 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, el 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. Inicie la importación.

Mientras continúa la importación, el progreso se muestra como mensajes en el 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 enImport Schema Logs. Selecciona Finalizar.

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

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

Recorte de pantalla del cuadro de diálogo Crear proyecto a partir de la 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, el 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 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, el tipo de objeto. Puede seleccionar una estructura de carpetas diferente o incluir permisos en los objetos que se importan antes de que comience la importación.

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

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

Paso 2: Compilación del proyecto SQL

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

En el Explorador de soluciones, 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 (.dacpac archivo) se crea 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. Use 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 (.dacpac archivo) se crea 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. Use la opción 2 en su lugar.

Opción 2: Crear un nuevo proyecto SQL vacío e importar objetos de una base de datos existente

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

Paso 1: Crear un nuevo proyecto SQL vacío

Iniciamos nuestro proyecto mediante la creación de un nuevo proyecto de base de datos SQL antes de importar los objetos a él.

Seleccione 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 superior debe ser Proyectode base de datos de SQL Server.

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

Seleccione Siguiente para continuar con el paso siguiente. Proporcione un nombre de proyecto, que no necesita coincidir con un nombre de 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 abre y está visible en el Explorador de soluciones para su edición.

Seleccione 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 superior debe ser Proyecto de base de datos de SQL Server, estilo SDK (versión preliminar).

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

Seleccione Siguiente para continuar con el paso siguiente. Proporcione un nombre de proyecto, que no necesita coincidir con un nombre de 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 abre y está visible 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.

Recorte de pantalla del Nuevo viewlet.

El primer símbolo del sistema 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 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 necesita coincidir con un nombre de base de datos.

En el cuadro de diálogo "Seleccionar una carpeta" que aparece, seleccione un directorio para la carpeta del proyecto, .sqlproj archivo y otro contenido en el que residir.

Cuando se le pida que cree un proyecto de estilo SDK, seleccione .

Una vez completado, el proyecto vacío se abre y se ve 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 -n opción especifica el nombre del proyecto y la -tp opción especifica la plataforma de destino del proyecto.

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

# create a new SQL database project
dotnet new sqlproj -n MyDatabaseProject

Paso 2: Importar objetos de una base de datos existente

En el Explorador de soluciones, haga clic con el botón derecho en el nodo del proyecto y seleccione Importar -> Base de datos.... Si esta opción está deshabilitada, es posible que el proyecto de base de datos tenga objetos creados en él. Puede eliminar los objetos o crear un nuevo proyecto.

En el cuadro de diálogo Importar base de datos, seleccione la conexión a 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 de historial.

Recorte de pantalla del cuadro de diálogo Importar base de datos en Visual Studio.

La configuración de importación predeterminada importa los objetos en carpetas por esquema y, a continuación, el 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. Inicie la importación.

Mientras continúa la importación, el progreso se muestra como mensajes en el 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 enImport 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 de tipo de objeto y esquema anidado.

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 de SQL.

Note

La extensión Proyectos de SQL Database en VS Code no admite la importación de objetos de una base de datos en un proyecto. Use la extensión Proyectos de base de datos SQL en Azure Data Studio para importar objetos de 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 en Azure Data Studio, abra la vista Proyectos de base de datos. Haga clic con el botón derecho en el nodo del proyecto y seleccione Actualizar proyecto de la base de datos.

Recorte 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 a 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 de 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 .dacpac archivo o archivos individuales .sql. El siguiente comando SqlPackage extrae el esquema de una base de datos en archivos .sql organizados por carpetas de tipo de objeto y esquema anidado.

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 de SQL.

Paso 3: Compilar el proyecto de SQL

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

En el Explorador de soluciones, 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 (.dacpac archivo) se crea 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 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 (.dacpac archivo) se crea 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 (.dacpac archivo) se crea 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 dotnet build comando.

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 (.dacpac archivo) se crea su ubicación se incluye en la salida de la compilación (el valor predeterminado es bin/Debug/projectname.dacpac).