Extensión SQL Database Projects

La extensión de proyectos de SQL Database es una extensión de Azure Data Studio y Visual Studio Code para desarrollar bases de datos SQL en un entorno de desarrollo basado en proyectos. Entre las bases de datos compatibles, se encuentran SQL Server, Azure SQL Database, Azure SQL Managed Instance y Azure Synapse SQL. Un proyecto 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. Cuando se compila un proyecto de SQL Database, el artefacto de salida es un archivo .dacpac. Las bases de datos nuevas y existentes se pueden actualizar para que coincidan con el contenido del archivo .dacpac publicando el proyecto de SQL Database con la extensión de proyectos de SQL Database o publicando el archivo .dacpac con la interfaz de la línea de comandos con SqlPackage.

Summary of SQL Database Projects containing pre-deployment and post-deployment scripts as well as database objects.

Características de la extensión

La extensión Proyectos de SQL Database proporciona las siguientes características:

  • Creación de un proyecto en blanco nuevo.
  • Cree un nuevo proyecto a partir de una base de datos conectada.
  • Puede abrir un proyecto creado previamente en Azure Data Studio, Visual Studio Code o en SQL Server Data Tools.
  • Edición de un proyecto mediante la adición o eliminación de objetos (tablas, vistas y procedimientos almacenados) o scripts personalizados.
  • Organización de archivos y scripts en carpetas.
  • Incorporación de referencias a bases de datos del sistema o a un archivo dacpac del usuario.
  • Creación de un solo proyecto.
  • Implementación de un solo proyecto.
  • Carga de los detalles de conexión (autenticación de Windows de SQL) y las variables SQLCMD del perfil de implementación.

Las siguientes características de la extensión de proyectos de SQL Database están actualmente en versión preliminar:

Vea este vídeo breve de 10 minutos para obtener una introducción a la extensión SQL Database Projects en Azure Data Studio:

Instalar

Puede instalar la extensión SQL Database Projects en Azure Data Studio y Visual Studio Code.

Azure Data Studio

Haga lo siguiente para instalar la extensión Proyectos de SQL Database en Azure Data Studio:

  1. Abra el administrador de extensiones para tener acceso a las extensiones disponibles. Para ello, seleccione el icono de extensiones o Extensiones en el menú Vista.

  2. Para identificar la extensión SQL Database Projects, escriba todo el nombre o parte de él en el cuadro de búsqueda de extensiones. Seleccione una extensión disponible para ver sus detalles.

    Screenshot of Azure Data Studio, Install extension.

  3. Seleccione la extensión que quiera e instálela.

  4. Seleccione Recargar para habilitar la extensión (solo es necesario la primera vez que se instala una extensión).

  5. Seleccione el icono Proyectos en la barra de actividades.

Nota

  • Se recomienda instalar la extensión Comparación de esquemas junto con SQL Database Projects para obtener una funcionalidad completa.

Visual Studio Code

La extensión SQL Database Projects se instala con la extensión mssql para Visual Studio Code.

Dependencias

La extensión de proyectos de SQL Database tiene una dependencia del SDK de .NET (obligatoria) y de AutoRest.Sql (opcional).

.NET SDK

El SDK de .NET es necesario para la funcionalidad de compilación de proyectos y se le pedirá que lo instale si la extensión no puede detectar una versión compatible. El SDK de .NET se puede descargar e instalar para Windows, macOS y Linux.

Si quiere comprobar qué versiones hay actualmente instaladas del SDK de dotnet, abra un terminal y ejecute el siguiente comando:

dotnet --list-sdks

Después de instalar el SDK de .NET, el entorno está listo para usar la extensión de proyectos de SQL Database.

Problemas comunes

La ausencia de Nuget.org en la lista de orígenes puede dar lugar a mensajes de error como:

  • error MSB4236: The SDK 'Microsoft.Build.Sql/0.1.9-preview' specified could not be found.
  • Unable to find package Microsoft.Build.Sql. No packages exist with this id in source(s): Microsoft Visual Studio Offline Packages

Para comprobar si nuget.org está registrado como origen, ejecute dotnet nuget list source desde la línea de comandos y revise los resultados de un elemento [Enabled] que hace referencia a nuget.org. Si nuget.org no está registrado como origen, ejecute dotnet nuget add source https://api.nuget.org/v3/index.json -n nuget.org.

Las versiones del SDK de .NET que no sean compatibles pueden producir mensajes de error como el siguiente:

  • error MSB4018: The "SqlBuildTask" task failed unexpectedly.
  • error MSB4018: System.TypeInitializationException: The type initializer for 'SqlSchemaModelStaticState' threw an exception. ---> System.IO.FileNotFoundException: Could not load file or assembly 'System.Runtime, Version=4.2.2.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'. The system cannot find the file specified. [c:\Users\ .sqlproj]_ (aquí, el archivo vinculado que no se encuentra tiene un corchete de cierre sin coincidencia).

Para forzar que la extensión de proyectos de SQL Database use la versión v6.x del SDK de .NET cuando haya varias versiones instaladas, agregue un archivo global.json a la carpeta que contiene el proyecto de SQL.

AutoRest.Sql

La extensión SQL para AutoRest se descarga automáticamente y la usa la extensión SQL Database Projects cuando se genera un proyecto SQL a partir de un archivo de especificación OpenAPI.

Limitaciones

Actualmente, la extensión Proyectos de SQL Database tiene las siguientes limitaciones:

  • El usuario no define las tareas (compilación y publicación).
  • No se admiten objetos SQLCLR en los proyectos.
  • En este momento, no se admiten las reglas de análisis de código en los proyectos.

Área de trabajo

Los proyectos de bases de datos SQL se incluyen dentro de un área de trabajo lógica en Azure Data Studio y Visual Studio Code. Un área de trabajo administra las carpetas visibles en el panel Explorador. Todos los proyectos SQL dentro de las carpetas abiertas en el área de trabajo actual están disponibles en la vista Proyectos de SQL Database de forma predeterminada.

Puede agregar y quitar proyectos manualmente de un área de trabajo a través de la interfaz del panel Proyectos. En caso necesario, la configuración de un área de trabajo se puede editar manualmente en el archivo .code-workspace.

En el archivo .code-workspace de ejemplo siguiente, en la matriz folders se enumeran todas las carpetas incluidas en el panel Explorador, y en la matriz dataworkspace.excludedProjects de settings se enumeran todos los proyectos SQL excluidos del panel Proyectos.

{
	"folders": [
		{
			"path": "."
		},
		{
			"name": "WideWorldImportersDW",
			"path": "..\\WideWorldImportersDW"
		}
	],
	"settings": {
		"dataworkspace.excludedProjects": [
			"AdventureWorksLT.sqlproj"
		]
	}
}

Pasos siguientes