Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Se aplica a:SQL Server
Azure SQL Database
Instancia
administrada de Azure SQLBase de datos SQL en Microsoft Fabric
Los proyectos SQL validan las referencias de objetos de base de datos durante el proceso de compilación del proyecto. De forma predeterminada, los proyectos de SQL no incluyen objetos del sistema en el modelo de base de datos, lo que puede provocar errores de validación si el proyecto contiene referencias a objetos del sistema. Para resolver estos errores de validación, incluiría una referencia de base de datos al master.dacpac para la plataforma de destino de su proyecto.
La master.dacpac referencia de base de datos se puede agregar como una referencia de paquete en proyectos SQL de estilo SDK de Microsoft.Build.Sql o como referencia de artefacto en proyectos SQL originales y de estilo SDK.
Adición de una referencia de paquete
Los paquetes de base de datos del sistema disponibles son:
-
Base de datos del sistema de SQL Server
master -
Base de datos del sistema de SQL Server
msdb -
Base de datos del sistema de Azure SQL Database
master - Base de datos SQL en objetos del sistema de Fabric
-
Base de datos del sistema de Azure Synapse Analytics
master - Base de datos de sistema para los grupos sin servidor de Azure Synapse Analytics
El método más directo para agregar una referencia de paquete a un proyecto SQL es usar la interfaz de la línea de comandos (CLI) de .NET. En el ejemplo siguiente se agrega una referencia de paquete a la base de datos del sistema de Azure SQL Database master a un proyecto de SQL:
dotnet add <path-to-sqlproj> package Microsoft.SqlServer.Dacpacs.Azure.Master
Este comando agrega la siguiente entrada al archivo (la versión del .sqlproj paquete reflejará la versión más reciente disponible en el momento en que se ejecuta el comando):
...
<ItemGroup>
<PackageReference Include="Microsoft.SqlServer.Dacpacs.Azure.Master" Version="170.0.1" />
</ItemGroup>
</Project>
Adición de una referencia de artefacto
Las interfaces de proyecto de SQL de VS Code y Visual Studio proporcionan un método para agregar una referencia de artefacto al master.dacpac archivo para la plataforma de destino del proyecto.
Las modificaciones resultantes en el .sqlproj archivo tendrán un aspecto similar al ejemplo siguiente, que agrega una referencia de artefacto a la base de datos del sistema de Azure SQL Database master en Visual Studio:
<ItemGroup>
<ArtifactReference Include="$(DacPacRootPath)\Extensions\Microsoft\SQLDB\Extensions\SqlServer\AzureV12\SqlSchemas\master.dacpac">
<HintPath>$(DacPacRootPath)\Extensions\Microsoft\SQLDB\Extensions\SqlServer\AzureV12\SqlSchemas\master.dacpac</HintPath>
<SuppressMissingDependenciesErrors>False</SuppressMissingDependenciesErrors>
<DatabaseVariableLiteralValue>master</DatabaseVariableLiteralValue>
</ArtifactReference>
</ItemGroup>
Se hace referencia a los archivos master.dacpac desde la ubicación de instalación de las aplicaciones, lo cual puede ser problemático para algunos sistemas de CI/CD. Puede copiar el master.dacpac archivo en una ubicación dentro de la solución y actualizar los Include atributos y HintPath para que apunten a esa ubicación si el sistema de compilación no incluye los archivos de base de datos del sistema.
Base de datos SQL en Fabric
La base de datos SQL en los objetos del sistema de Fabric se incluye en el paquete Microsoft.SqlServer.Dacpacs.DbFabric, pero puede ser necesario tomar medidas adicionales para configurar correctamente la referencia de la base de datos en el entorno de Fabric.
El proyecto SQL creado con el control de código fuente integrado en Fabric incluye la referencia del paquete y la DatabaseVariableLiteralValue propiedad establecida a master. Esta propiedad es necesaria porque la base de datos SQL de Fabric no proporciona acceso a la master base de datos, pero se puede hacer referencia a los mismos objetos del sistema en la base de datos de usuario.
Si crea un nuevo proyecto de SQL en Visual Studio o VS Code, debe actualizar la DatabaseVariableLiteralValue propiedad para master que coincida con el nombre de la base de datos que se usa en la base de datos SQL en el entorno de Fabric.
<ItemGroup>
<PackageReference Include="Microsoft.SqlServer.Dacpacs.DbFabric">
<SuppressMissingDependenciesErrors>False</SuppressMissingDependenciesErrors>
<DatabaseVariableLiteralValue>master</DatabaseVariableLiteralValue>
<Version>170.0.0</Version>
</PackageReference>
</ItemGroup>