Comparteix a través de


Tutorial: Inicio desde una base de datos existente

Se aplica a:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceBase de datos SQL en Microsoft Fabric

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

Algunas herramientas de proyecto de SQL incluyen un único paso para crear un nuevo 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), esta guía se centra en proyectos SQL de estilo SDK.

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

  • Paso 1: Creación de un nuevo proyecto de SQL a partir de una base de datos existente
  • Paso 2: Compilación del proyecto de SQL

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

  • Paso 1: Creación de un nuevo proyecto DE SQL vacío
  • Paso 2: Importación de objetos desde una base de datos existente
  • Paso 3: Compilación del 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 edición para desarrolladores 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 SQL Server Explorador de objetos en Visual Studio, haga clic con el botón derecho en la base de datos desde la que desea crear un project y seleccione Crear nuevo Project... .

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

En el cuadro de diálogo Crear nuevo Proyecto, escriba un nombre de proyecto. El nombre del proyecto 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.

El cuadro de diálogo Importar base de datos muestra el progreso de la importación en forma de mensajes. Cuando finalice la importación, puede ver los objetos importados en el Explorador de soluciones. El proceso almacena los registros en un archivo del directorio del proyecto en Import Schema Logs. Selecciona Finalizar.

La opción 1 no está disponible para proyectos SQL de estilo SDK en Visual Studio. Use la opción 2 en su lugar.

En la vista explorador de objetos de base de datos de Visual Studio Code, 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 Project en Base de datos.

Captura de pantalla del cuadro de diálogo Crear proyecto desde base de datos en Visual Studio Code.

En Visual Studio Code, el cuadro de diálogo Crear proyecto a partir de la base de datos requiere 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 elegir incluir permisos en los objetos que se importan antes de seleccionar Crear.

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 SQL Server Management Studio. Use la opción 2 en su lugar.

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. El artefacto resultante del proceso de compilación es un archivo .dacpac, que puede usar para desplegar el proyecto en una base de datos de destino. Este archivo contiene el modelo compilado del esquema de base de datos.

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

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

La opción 1 no está disponible para proyectos SQL de estilo SDK en Visual Studio. Use la opción 2 en su lugar.

En la vista Database Projects de Visual Studio Code, haga clic con el botón derecho en el nodo del proyecto y seleccione Build.

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

La opción 1 no está disponible para SQL Server Management Studio. Use la opción 2 en su lugar.

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, puede separar los pasos de creación del proyecto e importación de objetos.

Paso 1: Crear un nuevo proyecto SQL vacío

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

Seleccione File, New y, a continuación, Project.

En el cuadro de diálogo New Project, use el término SQL Server en el cuadro de búsqueda. El resultado superior es SQL Server Database Project.

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

Seleccione Siguiente para continuar con el paso siguiente. Escriba 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 File, New y, a continuación, Project.

En el cuadro de diálogo New Project, use el término SQL Server en el cuadro de búsqueda. El resultado superior es SQL Server Database Project, estilo SDK (versión preliminar).

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

Seleccione Siguiente para continuar con el paso siguiente. Escriba 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 Database Projects de Visual Studio Code, seleccione el botón New Project.

Recorte de pantalla del Nuevo viewlet.

El primer aviso 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. Si no conoce la versión de la base de datos de destino, 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, .sqlproj el archivo y otro contenido del proyecto en el que residirá.

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

Cuando se completa, el proyecto vacío se abre y está visible en la vista Proyectos de base de datos para su edición.

Seleccione File, New y, a continuación, Project.

En el cuadro de diálogo Nuevo Project, seleccione SQL Database Project.

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

Seleccione Siguiente para continuar con el paso siguiente. Escriba 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.

Al instalar las plantillas de .NET para proyectos Microsoft.Build.Sql, puede crear un nuevo proyecto de base de datos SQL desde 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 Explorador de soluciones, haga clic con el botón derecho en el nodo del proyecto y seleccione Import -> Database... . 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 SQL Server Explorador de objetos, aparece en la lista history.

Captura 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. Una vez completada 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.

Use la CLI de SqlPackage para importar objetos de una base de datos existente al nuevo proyecto de base de datos SQL que creó 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 coloca estas carpetas 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.

En la extensión Proyectos de SQL Database en Visual Studio Code, abra la vista Database Projects. Haga clic con el botón derecho en el nodo del proyecto y seleccione Actualizar proyecto de la base de datos.

Captura de pantalla del cuadro de diálogo Actualizar base de datos en Visual Studio Code.

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 , aparece 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.

En Explorador de soluciones, haga clic con el botón derecho en el nodo del proyecto y seleccione Importar desde base de datos... .

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.

Captura de pantalla del cuadro de diálogo Importar base de datos en SSMS.

La configuración de importación predeterminada importa todos los objetos de la base de datos en el proyecto y los organiza en carpetas por esquema y tipo de objeto, pero cancela la importación si se sobrescribe algún objeto del proyecto. Puede modificar la importación para actualizar el proyecto con objetos de la base de datos seleccionando Sobrescribir objetos existentes en el proyecto. Seleccione Importar para comenzar la importación.

Cuando se complete la importación, se actualiza Explorador de soluciones con los objetos importados.

Use la CLI de SqlPackage 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 a los archivos .sql organizados por esquema anidado y tipo de objeto.

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

Cuando coloca estas carpetas 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 archivo .dacpac, que puede utilizar para implementar el proyecto en una base de datos de destino. Este archivo contiene el modelo compilado del esquema de base de datos.

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

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

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

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

En la vista Database Projects de Visual Studio Code, haga clic con el botón derecho en el nodo del proyecto y seleccione Build.

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

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

Pantalla del Explorador de Soluciones en SQL Server Management Studio con la opción de Compilar disponible.

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

Puede compilar proyectos de base de datos SQL 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, se crea el artefacto de compilación (.dacpac archivo) y su ubicación se incluye en la salida de compilación (el valor predeterminado es bin/Debug/projectname.dacpac).