Megosztás a következőn keresztül:


SQL-projektek rendszerobjektumai

A következőkre vonatkozik:SQL ServerAzure SQL DatabaseFelügyelt Azure SQL-példánySQL-adatbázis a Microsoft Fabricben

Az SQL-projektek ellenőrzik az adatbázisobjektum-hivatkozásokat a projekt összeállítási folyamata során. Az SQL-projektek alapértelmezés szerint nem tartalmaznak rendszerobjektumokat az adatbázismodellben, ami ellenőrzési hibákhoz vezethet, ha a projekt rendszerobjektumokra mutató hivatkozásokat tartalmaz. Az érvényesítési hibák megoldásához vegyen fel egy adatbázis-hivatkozást a master.dacpac projekt célplatformjához.

Az master.dacpac adatbázis-referenciát csomaghivatkozásként is hozzáadhatja a Microsoft.Build.Sql SDK-stílusú SQL-projektekhez, vagy összetevő-hivatkozásként SDK-stílusú és eredeti SQL-projektekben is.

Csomaghivatkozás hozzáadása

Az elérhető rendszeradatbázis-csomagok a következők:

A csomaghivatkozás SQL-projektekhez való hozzáadásának legközvetítőbb módja a .NET parancssori felület (CLI) használata. Az alábbi példa egy csomaghivatkozást ad hozzá az Azure SQL Database master rendszeradatbázisához egy SQL-projekthez:

dotnet add <path-to-sqlproj> package Microsoft.SqlServer.Dacpacs.Azure.Master

Ez a parancs hozzáadja a következő bejegyzést a .sqlproj fájlhoz (a csomag verziója a parancs futtatásakor elérhető legújabb verziót fogja tükrözni):

...
    <ItemGroup>
        <PackageReference Include="Microsoft.SqlServer.Dacpacs.Azure.Master" Version="170.0.1" />
    </ItemGroup>
</Project>

Artefaktum hivatkozás hozzáadása

A VS Code és a Visual Studio SQL-projekt felületei módszert biztosítanak az artefaktumhivatkozás hozzáadására a master.dacpac fájlhoz a projekt célplatformjához.

A fájl eredményként kapott szerkesztései az .sqlproj alábbi példához hasonlóan fognak kinézni, amely hozzáad egy összetevőhivatkozást a Visual Studióban található Azure SQL Database master rendszeradatbázishoz:

<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>

A master.dacpac fájlokra az alkalmazások telepítési helyéről hivatkozunk, ami egyes CI/CD-rendszerek esetében törékeny lehet. A master.dacpac fájlt átmásolhatja a megoldásban egy helyre, és frissítheti a Include és HintPath attribútumokat, hogy erre a helyre mutassanak, ha a build rendszer nem tartalmazza a rendszeradatbázis fájlokat.

SQL-adatbázis a Fabricben

A Csomag tartalmazza az SQL-adatbázist a Microsoft.SqlServer.Dacpacs.DbFabric Fabric rendszerobjektumaiban, de további lépésekre lehet szükség az adatbázis-referencia megfelelő konfigurálásához a Fabric-környezetben lévő SQL-adatbázishoz.

A Fabric integrált forrásvezérlésével létrehozott SQL projekt tartalmazza a csomaghivatkozást és a DatabaseVariableLiteralValue tulajdonságot master értékre állítva. Erre a tulajdonságra azért van szükség, mert a Hálóban lévő SQL-adatbázis nem biztosít hozzáférést az master adatbázishoz, de ugyanazokra a rendszerobjektumokra lehet hivatkozni a felhasználói adatbázisban.

Ha új SQL-projektet hoz létre a Visual Studióban vagy a VS Code-ban, a DatabaseVariableLiteralValue tulajdonságot úgy kell frissítenie, hogy master megfeleljen a Fabric-környezetben az SQL-adatbázisban használt adatbázisnévnek.

  <ItemGroup>
    <PackageReference Include="Microsoft.SqlServer.Dacpacs.DbFabric">
      <SuppressMissingDependenciesErrors>False</SuppressMissingDependenciesErrors>
      <DatabaseVariableLiteralValue>master</DatabaseVariableLiteralValue>
      <Version>170.0.0</Version>
    </PackageReference>
  </ItemGroup>