Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Gäller för:SQL Server
Azure SQL Database
Azure SQL Managed Instance
SQL-databas i Förhandsversion av Microsoft Fabric
SQL-projekt validerar databasobjektreferenser under projektgenereringsprocessen. Som standard innehåller SQL-projekt inte systemobjekt i databasmodellen, vilket kan leda till valideringsfel om projektet innehåller referenser till systemobjekt. För att lösa dessa valideringsfel skulle du inkludera en databasreferens till master.dacpac för projektets målplattform.
Databasreferensen master.dacpac kan läggas till som en paketreferens i SQL-projekt i Microsoft.Build.Sql SDK-format eller som en artefaktreferens i både SDK-format och ursprungliga SQL-projekt.
Lägga till en paketreferens
De tillgängliga systemdatabaspaketen är:
-
SQL Server-systemdatabas
master -
SQL Server-systemdatabas
msdb -
Azure SQL Database-systemdatabas
master - SQL-databas i Fabric-systemobjekt
-
Azure Synapse Analytics-systemdatabas
master -
Systemdatabas för serverlösa pooler i
masterAzure Synapse Analytics
Den mest direkta metoden för att lägga till en paketreferens till ett SQL-projekt är att använda .NET-kommandoradsgränssnittet (CLI). I följande exempel läggs en paketreferens till Azure SQL Database-systemdatabasen master i ett SQL-projekt:
dotnet add <path-to-sqlproj> package Microsoft.SqlServer.Dacpacs.Azure.Master
Det här kommandot lägger till följande post i .sqlproj filen (paketversionen återspeglar den senaste versionen som är tillgänglig när kommandot körs):
...
<ItemGroup>
<PackageReference Include="Microsoft.SqlServer.Dacpacs.Azure.Master" Version="170.0.1" />
</ItemGroup>
</Project>
Lägga till en artefaktreferens
VS Code- och Visual Studio SQL-projektgränssnitten tillhandahåller en metod för att lägga till en artefaktreferens till master.dacpac filen för målplattformen i projektet.
De resulterande redigeringarna av .sqlproj filen ser ut ungefär som i följande exempel, som lägger till en artefaktreferens till Azure SQL Database-systemdatabasen master i 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>
Filerna master.dacpac refereras från installationsplatsen för programmen, vilket kan vara bräckligt för vissa CI/CD-system. Du kan kopiera master.dacpac-filen till en plats i din lösning och uppdatera Include- och HintPath-attributen så att de pekar på den platsen om ditt byggsystem inte inkluderar systemdatabasfiler.
SQL-databas i Fabric
SQL-databasen i Fabric-systemobjekten ingår i Microsoft.SqlServer.Dacpacs.DbFabric-paketet, men det kan behövas ytterligare steg för att konfigurera databasreferensen korrekt för SQL-databasen i Fabric-miljön.
SQL-projektet som skapats med den integrerade källkontrollen i Fabric innehåller paketreferensen och egenskapen DatabaseVariableLiteralValue inställd på master. Den här egenskapen krävs eftersom SQL-databasen i Fabric inte ger åtkomst till master databasen, men samma systemobjekt kan refereras till i användardatabasen.
Om du skapar ett nytt SQL-projekt i Visual Studio eller VS Code måste du uppdatera DatabaseVariableLiteralValue-egenskapen till master så att den matchar databasnamnet som används i SQL-databasen i Fabric-miljö.
<ItemGroup>
<PackageReference Include="Microsoft.SqlServer.Dacpacs.DbFabric">
<SuppressMissingDependenciesErrors>False</SuppressMissingDependenciesErrors>
<DatabaseVariableLiteralValue>master</DatabaseVariableLiteralValue>
<Version>170.0.0</Version>
</PackageReference>
</ItemGroup>