Bagikan melalui


Objek sistem proyek SQL

Berlaku untuk:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceDatabase SQL di Microsoft Fabric

Proyek SQL memvalidasi referensi objek database selama proses build proyek. Secara default, proyek SQL tidak menyertakan objek sistem dalam model database, yang dapat menyebabkan kesalahan validasi jika proyek Anda berisi referensi ke objek sistem. Untuk mengatasi kesalahan validasi ini, Anda akan menyertakan referensi database ke master.dacpac untuk platform target proyek Anda.

master.dacpac Referensi database dapat ditambahkan sebagai referensi paket dalam proyek SQL gaya Microsoft.Build.Sql SDK atau sebagai referensi artefak dalam proyek SQL bergaya SDK dan asli.

Menambahkan referensi paket

Paket database sistem yang tersedia adalah:

Metode paling langsung untuk menambahkan referensi paket ke proyek SQL adalah menggunakan antarmuka baris perintah (CLI) .NET. Contoh berikut menambahkan referensi paket ke database sistem Azure SQL Database master ke proyek SQL:

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

Perintah ini menambahkan entri berikut ke .sqlproj file (versi paket akan mencerminkan versi terbaru yang tersedia pada saat perintah dijalankan):

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

Menambahkan referensi artefak

Antarmuka proyek VISUAL Code dan Visual Studio SQL menyediakan metode untuk menambahkan referensi artefak ke master.dacpac file untuk platform target proyek Anda.

Pengeditan yang dihasilkan ke .sqlproj file akan terlihat mirip dengan contoh berikut, yang menambahkan referensi artefak ke database sistem Azure SQL Database master di 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>

File master.dacpac dirujuk dari lokasi penginstalan aplikasi, yang dapat rapuh untuk beberapa sistem CI/CD. ** Anda dapat menyalin file master.dacpac ke lokasi dalam solusi Anda dan memperbarui atribut Include serta HintPath untuk menunjuk ke lokasi tersebut jika sistem build Anda tidak menyertakan file database sistem.

Basis data SQL dalam Fabric

Database SQL dalam objek sistem Fabric disertakan dalam Microsoft.SqlServer.Dacpacs.DbFabric paket, tetapi langkah tambahan mungkin diperlukan untuk mengonfigurasi referensi database dengan benar untuk database SQL di lingkungan Fabric.

Proyek SQL yang dibuat dengan kontrol sumber terintegrasi di Fabric mencakup referensi paket dan properti yang diatur menjadi DatabaseVariableLiteralValue ke master. Properti ini diperlukan karena database SQL di Fabric tidak menyediakan akses ke master database tetapi objek sistem yang sama dapat dirujuk dalam database pengguna.

Jika Anda membuat proyek SQL baru di Visual Studio atau VISUAL Code, Anda harus memperbarui DatabaseVariableLiteralValue properti agar master sesuai dengan nama database yang digunakan dalam database SQL di lingkungan Fabric.

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