Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of mappen te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen om mappen te wijzigen.
van toepassing op:SQL Server
Azure SQL Database
Azure SQL Managed Instance
SQL-database in Microsoft Fabric
SQL-projecten valideren databaseobjectverwijzingen tijdens het projectbuildproces. SQL-projecten bevatten standaard geen systeemobjecten in het databasemodel, wat kan leiden tot validatiefouten als uw project verwijzingen naar systeemobjecten bevat. Als u deze validatiefouten wilt oplossen, neemt u een databasereferentie op naar het master.dacpac doelplatform van uw project.
De master.dacpac databaseverwijzing kan worden toegevoegd als pakketverwijzing in SQL-projecten in Microsoft.Build.Sql SDK-stijl of als artefactverwijzing in zowel SDK-stijl als oorspronkelijke SQL-projecten.
Een pakketreferentie toevoegen
De beschikbare systeemdatabasepakketten zijn:
-
SQL Server-systeemdatabase
master -
SQL Server-systeemdatabase
msdb -
Azure SQL Database-systeemdatabase
master - SQL-database in Fabric-systeemobjecten
-
Azure Synapse Analytics-systeemdatabase
master -
Systeemdatabase voor serverloze Azure Synapse Analytics-pools
master
De meest directe methode voor het toevoegen van een pakketverwijzing aan een SQL-project is het gebruik van de .NET-opdrachtregelinterface (CLI). In het volgende voorbeeld wordt een pakketreferentie toegevoegd aan de Azure SQL Database-systeemdatabase master aan een SQL-project:
dotnet add <path-to-sqlproj> package Microsoft.SqlServer.Dacpacs.Azure.Master
Met deze opdracht wordt de volgende vermelding aan het .sqlproj bestand toegevoegd (de pakketversie geeft de nieuwste versie weer die beschikbaar is op het moment dat de opdracht wordt uitgevoerd):
...
<ItemGroup>
<PackageReference Include="Microsoft.SqlServer.Dacpacs.Azure.Master" Version="170.0.1" />
</ItemGroup>
</Project>
Een artefactreferentie toevoegen
De interfaces van HET VS Code- en Visual Studio SQL-project bieden een methode voor het toevoegen van een artefactreferentie aan het master.dacpac bestand voor het doelplatform van uw project.
De resulterende wijzigingen in het .sqlproj bestand lijken op het volgende voorbeeld, waarmee een artefactreferentie wordt toegevoegd aan de Azure SQL Database-systeemdatabase master in 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>
Vanuit de installatielocatie van de toepassingen wordt er naar de master.dacpac bestanden verwezen, wat breekbaar kan zijn voor sommige CI/CD-systemen. U kunt het master.dacpac bestand naar een locatie in uw oplossing kopiëren en de Include kenmerken HintPath bijwerken om naar die locatie te verwijzen als uw buildsysteem de systeembestanden niet bevat.
Een SQL-database in Fabric
De SQL-database in Fabric-systeemobjecten zijn opgenomen in het Microsoft.SqlServer.Dacpacs.DbFabric pakket, maar er zijn mogelijk extra stappen vereist om de databasereferentie correct te configureren voor de SQL-database in de Fabric-omgeving.
Het SQL-project dat is gemaakt met het geïntegreerde broncodebeheer in Fabric bevat de pakketreferentie en de DatabaseVariableLiteralValue eigenschap ingesteld op master. Deze eigenschap is vereist omdat sql-database in Fabric geen toegang biedt tot de master database, maar dezelfde systeemobjecten kunnen worden verwezen in de gebruikersdatabase.
Als u een nieuw SQL-project maakt in Visual Studio of VS Code, moet u de DatabaseVariableLiteralValue eigenschap bijwerken zodat master deze overeenkomt met de databasenaam die wordt gebruikt in de SQL-database in de Fabric-omgeving.
<ItemGroup>
<PackageReference Include="Microsoft.SqlServer.Dacpacs.DbFabric">
<SuppressMissingDependenciesErrors>False</SuppressMissingDependenciesErrors>
<DatabaseVariableLiteralValue>master</DatabaseVariableLiteralValue>
<Version>170.0.0</Version>
</PackageReference>
</ItemGroup>