Partekatu honen bidez:


DevOps de base de datos (versión preliminar) en SQL Server Management Studio

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 le ayuda a integrar el desarrollo de bases de datos en flujos de trabajo de integración continua e implementación continua (CI/CD) que están familiarizados como procedimientos recomendados de desarrollo. En SSMS, puede usar Microsoft.Build.Sql proyectos en versión preliminar para ayudarle a implementar, administrar y colaborar en los cambios de base de datos, proporcionando una definición local de los objetos de base de datos.

En este artículo se describe cómo usar proyectos de base de datos SQL en SQL Server Management Studio (SSMS) como parte o para anclar flujos de trabajo de DevOps de base de datos. Para obtener más información sobre los proyectos de base de datos SQL, consulte Proyectos de SQL Database.

Prerrequisitos

Creación de un nuevo proyecto

Para trabajar con proyectos de base de datos SQL en SSMS, necesita una carpeta local que contenga los archivos del proyecto. Puede iniciar un proyecto extrayendo objetos de una base de datos existente o creando nuevos archivos de objeto desde cero.

Captura de pantalla del cuadro de diálogo Nuevo proyecto en SQL Server Management Studio.

Nota:

SSMS puede pedir que se conecte a un servidor al abrir un archivo desde el Explorador de soluciones. Puede realizar el desarrollo de proyectos de SQL Database sin conexión sin conectarse a una base de datos.

Adición de objetos desde una base de datos existente

Use SqlPackage para extraer el esquema de una base de datos existente en archivos individuales .sql organizados por tipo de objeto. Ejecute el siguiente comando para crear una estructura de carpetas con los objetos de base de datos:

sqlpackage /Action:Extract /SourceConnectionString:"<connection-string>" /TargetFile:"<temp-folder>" /p:ExtractTarget=SchemaObjectType

El /p:ExtractTarget=SchemaObjectType parámetro organiza los archivos extraídos en subcarpetas basadas en el esquema y el tipo de objeto (por ejemplo, dbo/Tables, dbo/StoredProcedures). Extraiga en una carpeta temporal fuera del directorio del proyecto y, a continuación, use el Explorador de Windows para copiar el contenido deseado en la carpeta del proyecto.

Para obtener más información sobre las opciones de extracción de SqlPackage, vea Extracción de SqlPackage.

Crear nuevos objetos

Agregue nuevos objetos de base de datos al proyecto mediante la creación .sql de archivos en la carpeta del proyecto. Cada archivo debe contener una sola CREATE instrucción para un objeto de base de datos. Por ejemplo, una definición de tabla:

CREATE TABLE [dbo].[Products]
(
    [ProductId] INT NOT NULL PRIMARY KEY,
    [ProductName] NVARCHAR (100) NOT NULL,
    [Price] DECIMAL (10, 2) NOT NULL
);

Organice los archivos por esquema y tipo de objeto mediante subcarpetas, como dbo/Tables o Sales/StoredProcedures. Esta estructura coincide con la salida de la extracción de SqlPackage y facilita la búsqueda de objetos a medida que crece el proyecto. El proceso de compilación del proyecto SQL incluye todos los .sql archivos de la carpeta del proyecto y sus subcarpetas de forma predeterminada.

SSMS proporciona plantillas para elementos comunes que le ayudarán a empezar. Para agregar un nuevo elemento, haga clic con el botón derecho en el proyecto en el Explorador de soluciones, seleccione Agregar>nuevo elemento y elija en la lista de plantillas de objeto SQL.

Abrir proyectos existentes

Para abrir un proyecto de base de datos SQL existente en SSMS, seleccione Archivo>abrir>proyecto o solución y vaya al .sqlproj archivo.

Importante

SSMS solo admite proyectos de estilo Microsoft.Build.Sql SDK. La versión mínima admitida del SDK es 2.1.0. Si tiene un proyecto SQL original creado en Visual Studio, debe convertirlo al formato de estilo SDK antes de abrirlo.

Para obtener instrucciones sobre cómo convertir proyectos SQL originales al formato de estilo SDK, consulte Conversión de un proyecto SQL original a un proyecto de estilo SDK.

Compilación de proyectos e implementación de cambios

El flujo de trabajo del proyecto SQL consta de dos pasos principales: compilar el proyecto para validar y compilar el esquema e implementar la salida compilada en una base de datos de destino.

Compilación del proyecto

Al compilar un proyecto sql se validan las relaciones entre objetos y se comprueba la sintaxis de T-SQL en la plataforma de destino especificada. El proceso de compilación genera un .dacpac archivo, que contiene un modelo compilado del esquema de la base de datos.

Para compilar un proyecto en SSMS, haga clic con el botón derecho en el proyecto en el Explorador de soluciones y seleccione Compilar.

Captura de pantalla del Explorador de soluciones que muestra la opción de compilación del proyecto de SQL.

La salida de compilación muestra los errores o advertencias. Los errores indican problemas que impiden la implementación, como una vista que hace referencia a una tabla que no existe. Las advertencias resaltan posibles problemas como el uso de mayúsculas y minúsculas incoherentes en los nombres de objeto.

En una compilación correcta, el .dacpac archivo se crea en la carpeta dentro del bin\Debug directorio del proyecto.

Para obtener más información sobre cómo solucionar problemas de compilación, consulte Solución de problemas de compilación de proyectos de SQL.

Implementación de cambios

Después de compilar el proyecto, implemente el .dacpac en una base de datos de destino mediante el cuadro de diálogo Publicar en SSMS. El proceso de implementación compara el .dacpac con la base de datos de destino y genera las instrucciones CREATE, ALTER o DROP necesarias para sincronizar la base de datos con tu proyecto.

Para implementarlo, haga clic con el botón derecho en el proyecto en el Explorador de soluciones y seleccione Publicar. En el cuadro de diálogo Publicar, configure la conexión de la base de datos de destino y seleccione Publicar para aplicar cambios o Generar script para revisar el script de implementación antes de la ejecución.

Captura de pantalla del cuadro de diálogo Publicar para implementar cambios en el proyecto de SQL Database.

El proceso de publicación es idempotente, por lo que puede implementar lo mismo .dacpac varias veces sin causar problemas. Este enfoque le permite implementar en varios entornos (desarrollo, ensayo, producción) mediante el mismo artefacto compilado.

Para obtener información detallada sobre las opciones de implementación y la configuración, consulte Introducción a los proyectos de SQL Database.